如何删除使用Python的easy_install安装的包?

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

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

549775 次浏览

网络上有几个来源建议通过使用-m选项重新安装包,然后只需删除lib/中的. egg文件和bin/中的二进制文件来进行黑客攻击。此外,关于此setup工具问题的讨论可以在pythonbug跟踪器上找到,作为setupols问题21

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

如果这个问题对你来说足够严重,你可以考虑虚拟环境。它允许你创建一个封装python库的环境。你可以在那里安装包,而不是在全局站点包目录中。你在该环境中运行的任何脚本都可以访问这些包(以及可选的,你的全局包)。当评估我不确定我想要/需要全局安装的包时,我经常使用这个。如果你决定不需要这个包,很容易就把那个虚拟环境吹走。这很容易使用。制作一个新的环境:

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

virtual_envt在新环境中为您安装setupTools,因此您可以执行以下操作:

$>ENV/bin/easy_install

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

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

尝试

$ easy_install -m [PACKAGE]

然后

$ rm -rf .../python2.X/site-packages/[PACKAGE].egg

pip是setupols/easy_install的替代品,它提供了一个“卸载”命令。

根据安装说明安装pip:

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

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

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

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

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

easy_install -mxN PackageName

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

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

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

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

cat package_list | xargs -n1 sudo pip uninstall -y

package_list从虚拟环境中的pip freeze中清理(awk)。

要删除几乎所有Python包:

yolk -l | cut -f 1 -d " " | grep -v "setuptools|pip|ETC.." | xargs -n1 pip uninstall -y

我在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

希望这有帮助。

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

$ easy_install -m [PACKAGE]

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

然后删除该包的鸡蛋文件:

$ sudo rm -rf /usr/local/lib/python2.X/site-packages/[PACKAGE].egg

所有的信息都在其他答案中,但没有一个总结了两者你的请求,或者似乎让事情变得不必要的复杂:

  • 您的删除需要使用:

    pip uninstall <package>
    

    (使用easy_install pip安装)

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

    pip freeze
    

    或:

    yolk -l
    

    它可以输出更多的包细节。

    (通过easy_install yolkpip install yolk安装)

我只删除这个文件:easy-install.pth 工作,休息pip安装django==1.3.7

这对我很有效。它与之前的答案相似,但包的路径不同。

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

平台:MacOS High Sierra版本10.13.3