【问题标题】:How to uninstall a package on linux using pip3?如何使用 pip3 在 linux 上卸载软件包?
【发布时间】:2021-04-05 06:12:11
【问题描述】:

我正在尝试在 linux 上使用 pip3 卸载包“pygame”,到目前为止我尝试过的命令:

pip3 uninstall pygame
python3 -m pip uninstall pygame 

我在这两种情况下得到的输出:

找到现有安装:pygame 1.9.6

不在 /usr/lib/python3/dist-packages 卸载 pygame,外部环境 /usr

无法卸载“pygame”。找不到要卸载的文件。

第二条命令建议here 带有选项--user,但在这种情况下我得到的输出是“没有这样的选项:--user”。

【问题讨论】:

  • 您是否检查过您要删除的模块是否存在。您可以使用pip3 freeze 来检查已安装的模块。
  • 是的,该模块确实存在,pygame 版本 1.9.6 列在 pip3 freeze 的输出中(也是我试图用来卸载它的命令的输出表明找到了现有安装)。
  • 你是如何安装 pygame 的?您将需要使用与安装 pygame 相同的过程进行卸载。我的预感是你做了sudo pip install pygame 或一些涉及 sudo.和 pip 的变体。
  • 我已经按照您的描述安装了它——在这种情况下,我应该可以使用上面列出的命令将其卸载。 @沙丘
  • sudo pip uninstall pygame 应该可以工作。为了将来参考,将sudopip 结合使用几乎总是错误的做法。尝试研究设置和使用虚拟环境。

标签: python pip


【解决方案1】:

听起来您安装了 pygamesudo pip install pygame 或其他一些涉及 sudo 和 pip 的变体。一般来说,您应该避免这样做。这是因为您正在修改操作系统的内部 python 安装。它可能会引入与您的操作系统使用的各种内部 python 脚本不兼容的库版本。如果您卸载某些东西,您可能会无意中删除操作系统仍需要的库。

当且仅当您以这种方式安装 pygame 时,您可以通过以下方式卸载:

sudo pip uninstall pygame

将来,最好创建和使用virtual environments 来管理您自己项目的安装库。示例:

# Use your distro's package manager to install venv, if it is not already installed.
# apt is aware of your OS' system requirements in a way that pip is not, and so will not
# break things in the way that pip might.
sudo apt install python3-venv

python3 -m venv venv --prompt myproject
. venv/bin/activate
# in this shell, pip and python will now refer to the versions installed in your
# virtual environment (complete with any additional python packages you 
# have installed -- only pip initially)

# setuptools and wheel are not installed by default, and may be needed to install
# some python packages
pip install --upgrade pip setuptools wheel

【讨论】:

  • 正如我之前提到的,这个解决方案不起作用,我在我的问题中明确写了。使用 sudo 特权执行此命令绝对不会改变(我认为这不是特权问题,它说“无法卸载 'pygame'。没有找到要卸载的文件。” - 我不知道缺少哪些文件和为什么缺少)。另外我很确定我没有使用“sudo pip install pygame”来安装软件包,我只是使用了“pip install pygame”
  • “正如我之前提到的......”,我不认为你写的与你认为你写的相符。您写道您使用了pip uninstall ...,这将与sudo pip uninstall ... 做一些不同的事情。您之前尝试的输出表明它在 root 拥有并为操作系统 (Not uninstalling pygame at /usr/lib/python3/dist-packages) 保留的目录中找到了 pygame。因此,如果apt 找不到pygame,那么您似乎运行了sudo pip install pygameapt list --installed | grep pygame 的输出是什么?
  • 上述命令的输出是“python3-pygame/groovy,now 1.9.6+dfsg-3 amd64 [installed]”
  • 对,那么当您尝试sudo apt remove python3-pygame 时会发生什么(而不是仅python-pygame -- 没有 3)?
  • 这个解决方案 - sudo apt remove python3-pygame - 完美运行。谢谢!
【解决方案2】:

卸载python-pygame

sudo apt-get remove python-pygame

卸载python-pygame及其依赖包

sudo apt-get autoremove python-pygame

清除 python-pygame

sudo apt-get purge python-pygame

要从 Ubuntu Xenial 中删除 python-pygame 及其依赖项的配置和/或数据文件,然后执行:

sudo apt-get autoremove --purge python-pygame

更多详情请查看link

【讨论】:

  • 问题是我根本没有安装 python-pygame 包,所以上面列出的命令都没有做任何事情。然而,pygame==1.9.6 显示在 pip3 freeze 的输出中,并且位于“/usr/lib/python3/dist-packages”目录中(pip3 show pygame 的输出)。
猜你喜欢
  • 2015-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-11
  • 2021-07-05
  • 2017-08-15
  • 2021-05-27
  • 1970-01-01
相关资源
最近更新 更多