首页 文章

如何卸载使用pip install --user安装的软件包

提问于
浏览 1269
127

pip有一个 --user 选项,可以为每个用户安装一个Python包:

pip install --user [python-package-name]

我使用此选项在我没有root访问权限的服务器上安装软件包 . 我现在需要的是卸载当前用户的已安装软件包 . 我试图执行这个命令:

pip uninstall --user [python-package-name]

但我得到了:

no such option: --user

除了手动查找和删除软件包之外,如何卸载我使用 pip install --user 安装的软件包?

我发现了这篇文章

pip cannot uninstall from per-user site-packages directory

其中描述了不支持从用户目录卸载软件包 . 根据文章,如果它是正确实施然后与

pip uninstall [package-name]

安装的软件包也将在用户目录中搜索 . 但问题仍然存在 . 如果在系统范围内和每个用户安装相同的软件包怎么办?如果有人需要定位特定的用户目录怎么办?

5 回答

  • 111

    答案是 Not possible yet . 您必须手动删除它 .

  • 19

    在Linux上使用Python 3.5和pip 7.1.2测试了这个,情况似乎如下:

    • pip install --user somepackage 安装到 $HOME/.local ,卸载它确实可以使用 pip uninstall somepackage .

    • 无论 somepackage 是否同时也在系统范围内安装,都是如此 .

    • 如果在两个位置都安装了软件包,则只会卸载本地软件包 . 要使用 pip 在系统范围内卸载软件包,请首先在本地卸载它,然后使用 root 权限再次运行相同的卸载命令 .

    • 除了预定义的用户安装目录外, pip install --target somedir somepackage 还会将软件包安装到 somedir 中 . 无法使用 pip 从这样的位置卸载软件包 . (但是在Github上有一个有点旧的未合并拉取请求,它实现了 pip uninstall --target . )

    • 由于 pip 将从系统范围和预定义的用户本地卸载,因此您需要运行 pip uninstall 作为从给定用户的本地安装目录卸载的相应用户 .

  • 2

    正如@ thomas-lotze所提到的,目前pip工具不会这样做,因为没有相应的--user选项 . 但我发现我可以检入〜/ .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
    

    然后只需使用特定的pip版本卸载 .

  • 2

    我正在运行Anaconda版本4.3.22和python3.6.1环境,并遇到了这个问题 . 这是历史和修复:

    pip uninstall opencv-python # -- the original step. failed.
    
    ImportError: DLL load failed: The specified module could not be found.
    

    我这样做进入我的python3.6环境并得到了这个错误 .

    python -m pip install opencv-python # same package as above.
    conda install -c conda-forge opencv # separate install parallel to opencv
    pip-install opencv-contrib-python # suggested by another user here. doesn't resolve it.
    

    接下来,我尝试下载python3.6并将python3.dll放在文件夹和各种文件夹中 . 没有改变 .

    最后,这修复了它:

    pip uninstall opencv-python
    

    (另一个conda-forge版本仍然安装)这只留下了conda版本,并且工作在3.6 .

    >>>import cv2
    >>>
    

    工作!

  • 0

    在MacOS上卸载软件包'oauth2client'的示例:

    pip uninstall oauth2client
    

相关问题