711

Pythoneasy_install使得安装新包非常方便。但是,据我所知,它没有实现依赖管理器的其他常见功能——列出和删除已安装的包。

找出已安装内容的最佳方法是什么,以及删除已安装软件包的首选方法是什么?rm /usr/local/lib/python2.6/dist-packages/my_installed_pkg.egg如果我手动删除软件包(例如通过或类似方式),是否有任何文件需要更新?

4

13 回答 13

621

pip是 setuptools/easy_install 的替代品,提供“卸载”命令。

根据安装说明安装 pip :

$ wget https://bootstrap.pypa.io/get-pip.py
$ python get-pip.py

然后您可以使用pip uninstall删除安装的软件包easy_install

于 2010-07-21T08:47:21.617 回答
192

要卸载.egg你需要rm -rf的鸡蛋(它可能是一个目录)并从中删除匹配的行site-packages/easy-install.pth

于 2009-08-05T13:31:53.990 回答
162

首先你必须运行这个命令:

$ easy_install -m [PACKAGE]

它删除了包的所有依赖项。

然后删除该包的 egg 文件:

$ sudo rm -rf /usr/local/lib/python2.X/site-packages/[PACKAGE].egg
于 2011-06-07T09:56:47.080 回答
55

所有信息都在其他答案中,但没有一个可以总结的要求或似乎使事情变得不必要的复杂:

  • 对于您的移除需求,请使用:

    pip uninstall <package>
    

    (安装使用easy_install pip

  • 对于您的“列表安装包”需要使用:

    pip freeze
    

    或者:

    yolk -l
    

    可以输出更多的包细节。

    (通过easy_install yolk或安装pip install yolk

于 2012-01-03T21:04:44.490 回答
28

网上有几个来源建议通过使用 -m 选项重新安装软件包然后删除 lib/ 中的 .egg 文件和 bin/ 中的二进制文件来进行黑客攻击。此外,有关此 setuptools 问题的讨论可以在 python 错误跟踪器上找到 setuptools issue 21

编辑:添加了指向 python bugtracker 的链接。

于 2009-08-05T07:53:43.423 回答
25

如果问题对您来说非常烦人,您可能会考虑virtualenv。它允许您创建一个封装 python 库的环境。您在那里而不是在全局站点包目录中安装包。您在该环境中运行的任何脚本都可以访问这些包(也可以选择访问您的全局包)。在评估我不确定我想要/需要全局安装的软件包时,我经常使用它。如果您决定不需要该软件包,只需将虚拟环境吹走就很容易了。它很容易使用。创建一个新环境:

$>virtualenv /path/to/your/new/ENV

virtual_envt 会在新环境中为您安装 setuptools,因此您可以:

$>ENV/bin/easy_install

您甚至可以创建自己的 boostrap 脚本来设置您的新环境。因此,使用一个命令,您可以创建一个新的虚拟环境,例如默认安装的 python 2.6、psycopg2 和 django(如果需要,您可以安装特定于环境的 python 版本)。

于 2009-08-05T13:28:37.580 回答
19

官方(?)说明: http: //peak.telecommunity.com/DevCenter/EasyInstall#uninstalling-packages

如果你已经用另一个版本替换了一个包,那么你可以通过删除 PackageName-versioninfo.egg 文件或目录(在安装目录中找到)来删除你不需要的包。

如果要删除当前安装的软件包版本(或软件包的所有版本),应首先运行:

easy_install -mxN PackageName

这将确保 Python 不会继续搜索您计划删除的包。完成此操作后,您可以安全地删除 .egg 文件或目录,以及您希望删除的任何脚本。

于 2010-08-11T02:28:14.790 回答
16

尝试

$ easy_install -m [PACKAGE]

然后

$ rm -rf .../python2.X/site-packages/[PACKAGE].egg
于 2010-07-21T08:40:36.390 回答
7

要列出已安装的 Python 包,您可以使用yolk -l. 不过,您需要先使用easy_install yolk

于 2010-12-01T01:25:11.380 回答
6

在尝试卸载随时间安装的许多随机 Python 包时遇到了这个问题。

使用来自该线程的信息,这就是我想出的:

cat package_list | xargs -n1 sudo pip uninstall -y

从virtualenv 中的 a清除package_list(awk) 。pip freeze

要删除几乎所有 Python 包:

yolk -l | cut -f 1 -d " " | grep -v "setuptools|pip|ETC.." | xargs -n1 pip uninstall -y
于 2010-12-01T04:56:40.983 回答
3

我在我的 MacOS X Leopard 10.6.blah 上遇到了同样的问题。

解决方案是确保您调用的是 MacPorts Python:

sudo port install python26
sudo port install python_select
sudo python_select python26
sudo port install py26-mysql

希望这可以帮助。

于 2011-04-15T13:45:56.657 回答
3

对我来说只删除这个文件:easy-install.pth 工作,rest pip install django==1.3.7

于 2014-10-21T08:00:54.627 回答
0

这对我有用。它类似于以前的答案,但包的路径不同。

  1. sudo easy_install -m
  2. sudo rm -rf /Library/Python/2.7/site-packages/.egg

平台:MacOS High Sierra 版本 10.13.3

于 2018-03-20T01:54:46.107 回答