如何使用pip卸载可编辑软件包(与-e一起安装)
我已经用-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
> 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 usepython 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提供的答案,他的库似乎有点奇怪,被破坏了。希望这能节省人们下次的时间