如何使用pip卸载可编辑的包(使用-e安装)

Mic*_*arf 84 uninstall pip

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

> pip install -e git+https://github.com/eventray/horus.git@2ce62c802ef5237be1c6b1a91dbf115ec284a619#egg=horus-dev
Run Code Online (Sandbox Code Playgroud)

我看到了pip冻结

> pip freeze
...
-e git+https://github.com/eventray/horus.git@2ce62c802ef5237be1c6b1a91dbf115ec284a619#egg=horus-dev
...
Run Code Online (Sandbox Code Playgroud)

当我尝试卸载软件包时出现错误:

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

> pip uninstall horus
Cannot uninstall requirement horus, not installed
Run Code Online (Sandbox Code Playgroud)

如何卸载这样的包?

gla*_*ain 76

{virtualenv}/lib/python2.7/site-packages/(如果不使用virtualenv那么{system_dir}/lib/python2.7/dist-packages/)

  • 删除鸡蛋文件(例如distribute-0.6.34-py2.7.egg),如果有的话
  • 从文件easy-install.pth中删除相应的行(它应该是源目录或egg文件的路径).

  • 有点意外,没有相应的卸载方式. (37认同)
  • 对于我使用8.1.2,`pip uninstall package_name`有效,但`pip uninstall .`不起作用 (8认同)
  • pip [here](https://github.com/pypa/pip/issues/4438)有一个未解决的问题,因为它可以删除可编辑安装的软件包. (5认同)
  • @Drake是的,实际上非常讨厌 (4认同)
  • 使用当前的pip版本,卸载对于使用`-e`选项安装的软件包也可正常工作. (4认同)
  • @famousgarkin这很奇怪,因为我正在使用pip 1.5.6并且我不得不从这两个地方删除它http://stackoverflow.com/a/18818891/740067 (2认同)

Apt*_*ryx 20

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

pip uninstall yourpackage
Run Code Online (Sandbox Code Playgroud)

它适用于最近的 pip 版本(至少 >=19.1.1)。

  • OP已经尝试过这个并在他的问题中这么说。这不一定适用于安装为“可编辑”的软件包 (14认同)
  • @dusktreader:我不确定OP的“pip uninstall”命令发生了什么(可能是pip的过时版本?),但我已经验证在正常情况下它完全按照接受的答案中建议手动执行的操作作者:@glarrain。如果它不适合您,请详细说明您在这里所做的事情,以便我们进一步深入研究该问题。 (4认同)
  • 这个答案对我有用。我认为这对OP不起作用,因为如果你检查他的答案,他的安装有一些奇怪的损坏(或者他的计算机处于奇怪的状态)。`pip uninstall pkg` 确实有效。 (3认同)
  • 使用 git 版本 20.30.0 为我工作。我的包是用“pip install -e”安装的。 (2认同)

Leg*_*oom 7

使用cmd安装开发包:

pip install --editable .
Run Code Online (Sandbox Code Playgroud)

卸载:

rm -r $(find . -name '*.egg-info')
Run Code Online (Sandbox Code Playgroud)

  • 您能否指定第二条命令的运行位置? (2认同)

小智 7

使用新版本的setup_tools进行此操作的更简单方法是运行以下命令:

python setup.py develop -u
Run Code Online (Sandbox Code Playgroud)

基本上与@glarrain在其答案中描述的功能相同。

  • 这应该引起更多关注 (2认同)
  • 该命令应该有任何输出吗?我得到它说“正在运行开发”,但我仍然有“.egg-info”文件......是否应该删除它? (2认同)

Mic*_*arf 5

事实证明,我的安装以某种方式损坏了。

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

/usr/local/lib/python2.7/site-packages/easy-install.pth
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我手动删除了 .pth 文件中的行!

import sys; sys.__plen = len(sys.path)
...
/absolute-path-to/horus  # <- I removed this line
...
Run Code Online (Sandbox Code Playgroud)

  • 您的安装已损坏是什么意思? (2认同)

mat*_*kie 5

这是 debian/ubuntu linux 上的一个错误,使用操作系统安装的 pip(对我来说是 v8.1.1),sudo pip即使您升级了 pip(例如 get-pip.py),您也会调用它。见https://github.com/pypa/pip/issues/4438

有关如何清理的讨论,请参阅https://askubuntu.com/questions/173323/how-do-i-detect-and-remove-python-packages-installed-via-pip,尽管那里的解决方案是“去除一切”品种。

...pip 包 [go] to/usr/local/lib/python2.7/dist-packages和 apt 包到/usr/lib/python2.7/dist-packages

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

对于我的系统,我需要删除的是 /usr/local/lib/python2.7/dist-packages/{package_name}.egg-link