如何卸载使用pip install –user安装的软件包
有一个可以为每个用户安装一个Python包的pip的--user
选项:
pip install --user [python-package-name]
我使用这个选项在我没有root权限的服务器上安装一个软件包。 我现在需要的是卸载当前用户安装的软件包。 我试图执行这个命令:
pip uninstall --user [python-package-name]
但是我得到了:
no such option: --user
如何卸载我用pip install --user
安装的软件包,而不是手动查找和删除软件包?
我find了这篇文章
pip不能从每个用户的site-packages目录中卸载
其中描述了不支持从用户目录中卸载软件包。 根据文章是否正确执行然后用
pip uninstall [package-name]
安装的软件包也将在用户目录中search。 但问题仍然存在。 如果同一个软件包同时安装在系统范围内和用户范围内,会怎样? 如果有人需要定位特定的用户目录呢?
在Linux上使用Python 3.5和pip 7.1.2进行testing后,情况似乎是这样的:
-
pip install --user somepackage
安装到$HOME/.local
,并卸载它使用pip uninstall somepackage
。 -
无论是否同时在系统中安装
somepackage
情况也是如此。 -
如果软件包安装在两个地方,只有本地软件将被卸载。 要使用
pip
在系统范围内卸载软件包,请先在本地卸载该软件包,然后使用root
权限再次运行相同的卸载命令。 -
除了预定义的用户安装目录之外,
pip install --target somedir somepackage
会将软件包安装到somedir
。 没有办法使用pip
从这样的地方卸载软件包。 (但是在Github上有一个稍微老的未实现的pull请求,它实现了pip uninstall --target
。) -
由于唯一的
pip
将从系统范围和预定义的用户本地pip uninstall
,因此您需要运行pip uninstall
作为相应的用户从给定用户的本地安装目录中卸载。
例如在MacOS上卸载软件包“oauth2client”:
pip uninstall oauth2client
答案是不可能的 。 你必须手动删除它。
正如@ thomas-lotze所提到的那样,目前的pip工具并没有这样做,因为没有对应的用户选项。 但是我发现我可以在〜/ .local / bin中查找,并查找特定的pip#。#,这对我来说就像它对应于–user选项。
在我的情况下:
antho@noctil ~/.l/bin pwd /home/antho/.local/bin antho@noctil ~/.l/bin ls pip* pip pip2 pip2.7 pip3 pip3.5
然后只需卸载具体的点子版本。