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

Python的easy_install使得安装新软件包非常方便。 但是,据我所知,它不实现依赖pipe理器的其他常见function – 列出和删除已安装的软件包。

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

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

按照安装说明安装点子:

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

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

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

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

 $ 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

在网上有几个来源提示用-m选项重新安装软件包,然后删除lib /中的.egg文件和bin /中的二进制文件。 此外,关于这个setuptools问题的讨论可以在python bug跟踪器中find,作为setuptools issue 21 。

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

如果问题对你来说是一个严重的问题,你可以考虑virtualenv 。 它允许你创build一个封装python库的环境。 您可以在其中安装软件包,而不是在全局site-packages目录中。 您在该环境中运行的任何脚本都可以访问这些软件包(也可以select全局的软件包)。 评估软件包时我使用了很多,我不确定我想要/需要全局安装。 如果你决定不需要这个软件包,那么把这个虚拟环境带走就很容易了。 这很容易使用。 做一个新的环境:

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

virtual_envt在新的环境中为你安装setuptools,所以你可以这样做:

 $>ENV/bin/easy_install 

你甚至可以创build自己的boostrap脚本来设置你的新环境。 所以,用一个命令,你可以创build一个新的虚拟env,例如默认安装的python 2.6,psycopg2和django(如果你愿意,你可以安装一个特定于env的版本的python)。

尝试

 $ easy_install -m [PACKAGE] 

然后

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

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

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

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

 easy_install -mxN PackageName 

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

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

遇到这个问题,而试图卸载随着时间的推移安装的许多随机的Python包。

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

 cat package_list | xargs -n1 sudo pip uninstall -y 

package_list从virtualenv中的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上遇到了同样的问题。

解决scheme是确保你正在调用MacPorts Python:

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

希望这可以帮助。

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