如何在手动删除pip包后卸载它

57
我用rm -rf命令删除了一个pip包,以为它会被删除。现在包已经被删除,但它仍然显示在pip list中,我无法使用pip uninstall将其删除,也无法使用pip install --upgrade进行更新。

我想彻底删除它。有人能告诉我如何做吗?

编辑

该包是psycopg2。

如果我尝试卸载:

hammad@hammad-P5QL-E:~$ pip uninstall psycopg2
Can't uninstall 'psycopg2'. No files were found to uninstall.

这是 psycopg2 所在的目录:/usr/lib/python2.7/dist-packages,我从同一目录中使用 rm -rf 命令将其删除。
谢谢!

easy_install -m pip - Priyank Patel
7
@PriyankPatel 我想从pip中删除一个软件包!而不是安装pip。 - user3030969
不幸的是,您需要手动创建已删除的文件夹或从其他安装中复制它,然后尝试 pip uninstall,您也可以尝试再次 pip install 包,然后再执行 pip uninstall - Amyth
4个回答

73

使用pip安装的软件包可以通过以下方式完全卸载:

pip uninstall [package name]

pip uninstall <package>

参考链接

如果使用 python setup.py install 安装软件包,pip uninstall 可能会失败,因为它们不会留下元数据以确定安装了哪些文件。

如果 site-packagesdist-packages 文件夹中仍存在软件包的路径(.pth 文件),则这些软件包仍将显示在 pip list 中。 如果您使用 rm -rf 进行删除,还需要同时删除它们。


26
OP说:“我无法使用 pip uninstall 命令卸载它”,请问需要怎么处理? - Alfe
4
也完全没理解“它仍然会在 'pip list' 中显示”的要点。 - Karoly Horvath
5
在 dist-packages 文件夹中确实有一个名为 psycopg2-2.4.5.egg-info 的文件。完全删除它将移除该软件包。 - user3030969
1
这甚至没有试图回答问题。 - shrewmouse

14
  1. 进入pip正在安装软件包的site-packages目录。
  2. 你应该能够看到与你想要卸载的软件包相对应的egg文件。删除该egg文件(或者,为了安全起见,将其移动到另一个目录)。
  3. 对于你想要删除的软件包文件(在本例中是psycopg2目录),也同样进行操作。
  4. pip install YOUR-PACKAGE

如果这个人能带着指令过来的话,这应该是正确的答案。对于新手来说,一切都是新的,他们正需要正确的指令。无论如何,这个解决方案正确地解决了问题。 - undefined

3
我在尝试使用自己的Python库时遇到了同样的问题,我发现如果您当前的目录包含lib.egg-info文件夹,则pip freeze将显示已安装的库。而pip uninstall <lib>将给出相同的错误消息。
  1. 确保您当前的目录中没有任何egg-info文件夹
  2. 检查pip show <lib-name>以查看有关库位置的详细信息,以便您可以手动删除文件。

3

我相信有更好的方法来实现这个目标,我想阅读相关内容,但我能想到的一个解决方法是:

  1. 在另一台计算机上安装该软件包。
  2. 将被删除的目录复制到原始计算机(使用ssh、ftp等方式)。
  3. pip uninstall该软件包(然后应该就可以正常工作了)。

但是,是的,我也很想听听这种情况下的一个好的解决方案。


哦,这真的是一个变通方法!但很遗憾我没有额外的机器。 - user3030969
① 你收到了什么样的错误信息? ② 你删除了哪个目录? ③ 我们正在谈论哪个软件包? - Alfe
你知道的,我们都有机器,而我们在这里是为了帮助你的;-) - Alfe
好的,我没有考虑到你的设备。我会编辑问题,请查看它。 - user3030969
顺便提一下,您还可以设置一个_virtualenv_,并在其中pip install该软件包,以获取已删除的目录的映像。 - Alfe
如果有帮助的话,Python目录是/usr/local/bin/,而psycopg2在/usr/lib/python2.7/dist-packages中已不可见,但仍然显示在pip list中。 - user3030969

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接