如何使用pip卸载可编辑软件包(与-e一起安装)

如何使用pip卸载可编辑软件包(与-e一起安装),pip,uninstallation,Pip,Uninstallation,我已经用-e安装了一些软件包 > pip install -e git+https://github.com/eventray/horus.git@2ce62c802ef5237be1c6b1a91dbf115ec284a619#egg=horus-dev 我和皮普一起冻住了,我明白了 > pip freeze ... -e git+https://github.com/eventray/horus.git@2ce62c802ef5237be1c6b1a91dbf115ec284a

我已经用-e安装了一些软件包

> pip install -e git+https://github.com/eventray/horus.git@2ce62c802ef5237be1c6b1a91dbf115ec284a619#egg=horus-dev
我和皮普一起冻住了,我明白了

> pip freeze
...
-e git+https://github.com/eventray/horus.git@2ce62c802ef5237be1c6b1a91dbf115ec284a619#egg=horus-dev
...
当我尝试卸载软件包时,会出现以下错误:

> pip uninstall horus-dev
Cannot uninstall requirement horus-dev, not installed

> pip uninstall horus
Cannot uninstall requirement horus, not installed

如何卸载这样的软件包?

结果是,我的安装不知何故已损坏

我可以在以下位置找到条目:

/usr/local/lib/python2.7/site-packages/easy-install.pth
为了解决这个问题,我手动删除了.pth文件中的行

import sys; sys.__plen = len(sys.path)
...
/absolute-path-to/horus  # <- I removed this line
...
导入系统;系统路径(sys.path)
...

/位于
{virtualenv}/lib/python2.7/site packages/
的/horus#的绝对路径(如果不使用virtualenv,则
{system\u dir}/lib/python2.7/dist packages/

  • 如果存在egg文件,请删除该文件(例如分发-0.6.34-py2.7.egg
  • 从文件
    easy install.pth
    中,删除相应的行(它应该是源目录或egg文件的路径)

  • 只需卸载您在“可编辑”模式下安装的软件包:

    pip uninstall yourpackage
    

    使用cmd安装开发包:

    pip install --editable .
    
    卸载:

    rm -r $(find . -name '*.egg-info')
    

    现在您可以使用:

    pip uninstall package_name 
    

    或者
    python setup.py develope——卸载
    或者
    python setup.py develope-u

    这是debian/UbuntuLinux上使用OS安装的pip(对我来说是v8.1.1)的一个bug,即使升级了pip(例如get pip.py),也会调用它。看

    有关如何清理的讨论,请参见,尽管解决方案有“删除所有内容”的种类

    …pip包[转到]到
    /usr/local/lib/python2.7/dist包
    ,apt包转到
    /usr/lib/python2.7/dist包

    …在
    ~/.local/lib
    中也安装了一些软件包


    对于我的系统,我只需要删除
    /usr/local/lib/python2.7/dist-packages/{package\u-name}.egg-link

    使用新版本的安装工具执行相同操作的更简单方法是运行以下程序:

    python setup.py develope-u
    


    这与@glarrain在回答中描述的基本相同。

    令人惊讶的是,没有相应的卸载方法。@Drake是的,非常恼人,事实上,对于当前的pip版本,对于安装了
    -e
    选项的包,卸载也可以正常工作。对于我使用8.1.2,
    pip uninstall package\u name
    起作用,但
    pip uninstall.
    不起作用pip删除可编辑安装的软件包的能力存在一个未决问题。OP已经尝试过这一点,并在他的问题中这样说。这不一定适用于安装为“可编辑”的@DashTreader的软件包:我不确定OP的
    pip uninstall
    命令(可能是一个过时的pip版本?)。如果对您不起作用,请详细说明您在这里做什么,以便我们进一步挖掘问题。@Apteryx wait您是说即使在可编辑模式下也能起作用吗?这个答案对我很有用。我认为这对OP不起作用,因为如果你检查他的答案,他有一些奇怪的损坏安装(或者他的计算机处于奇怪的状态)
    pip uninstall pkg
    可以正常工作。尝试了此
    pip uninstall an-editable-package-0.1.0
    并获得
    警告:跳过an-editable-package-0.1.0,因为它未安装。
    ,但是它肯定是用
    pip install-e an-editable-package-0.1.0安装的。您可以指定从哪里运行第二个命令吗?@ethabrooks
    是当前目录,您使用包的完整绝对路径。不完整。那么所有的Python包呢?(
    site packages
    dir)这不会完全撤消安装。它从安装包的文件夹中删除内容,但不删除
    dist-packages
    目录(Python在其中查找已安装包)中的符号链接。Cleaner to use
    python setup.py develop-u
    @MarkAmery谢谢,
    pip uninstall package\u name
    work now.pip uninstall卸载在最新版本的pip中以可编辑模式安装的包(我的是19.1.1)。请确保使用setup.py中的软件包名称,而不是您指定的别名,以便在使用conda的用户的入口点调用该软件包,以便在conda do中以开发模式进行卸载:
    conda develop-u。
    您是否了解了
    pip卸载您的软件包
    不起作用的原因?比如你的错误是什么意思?命令的输出似乎很奇怪……您是否尝试过
    pip uninstall-e.
    python setup.py develop-u
    ?对于我来说
    pip uninstall库
    工作得很好。如果你找到OP提供的答案,他的库似乎有点奇怪,被破坏了。希望这能节省人们下次来这里的时间。但是,有许多不同的选项可以使用。该命令应该有任何输出吗?我看到上面写着
    正在运行develope
    ,但我仍然看到
    .egg info
    文件…它应该删除它吗?什么是“安装工具的新版本”有这个答案?你能确认一下吗?你的回答能保证一个人不需要手动移除东西吗?它不会产生任何输出。根据我的理解,它应该删除它:“--uninstall,-u取消部署当前项目。您可以使用--install dir或-d选项指定临时区域。创建的.egg链接文件将被删除,如果存在,并且仍然指向项目目录。”来自。运行此程序后,是否仍从开发目录加载内容?@CharlieParker我不确定引入此程序的版本。我从来没有手动删除过这些文件。你的安装损坏是什么意思?对我来说
    pip uninstall library
    工作得很好。如果你找到OP提供的答案,他的库似乎有点奇怪,被破坏了。希望这能节省人们下次的时间