如何删除用python的easy-install安装的包?

How do I remove packages installed with Python's easy_install?

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

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


PIP是setuptools/easy_install的替代方法,它提供了一个"uninstall"命令。

根据安装说明安装PIP:

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

然后您可以使用pip uninstall删除随easy_install一起安装的包。


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


首先,您必须运行以下命令:

1
$ easy_install -m [PACKAGE]

它删除包的所有依赖项。

然后删除该包的蛋文件:

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


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

  • 对于您的删除需要使用:

    1
    pip uninstall <package>

    (使用easy_install pip安装)

  • 对于"列出已安装的软件包"需要使用:

    1
    pip freeze

    或:

    1
    yolk -l

    可以输出更多的包详细信息。

    (通过easy_install yolkpip install yolk安装)


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

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


如果这个问题对你来说够麻烦的话,你可以考虑使用virtualenv。它允许您创建一个封装Python库的环境。在那里而不是在全局站点包目录中安装包。在该环境中运行的任何脚本都可以访问这些包(也可以访问全局包)。在评估我不确定要/需要全局安装的包时,我经常使用这个方法。如果您决定不需要这个包,那么就很容易将虚拟环境吹走。它很容易使用。制作一个新的EnV:

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

虚拟环境在新环境中为您安装安装工具,因此您可以执行以下操作:

1
$>ENV/bin/easy_install

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


官方(?)说明:http://peak.telecommunity.com/devcenter/easyinstall卸载软件包

If you have replaced a package with another version, then you can just delete the package(s) you don't need by deleting the PackageName-versioninfo.egg file or directory (found in the installation directory).

If you want to delete the currently installed version of a package (or all versions of a package), you should first run:

1
easy_install -mxN PackageName

This will ensure that Python doesn't continue to search for a package you're planning to remove. After you've done this, you can safely delete the .egg files or directories, along with any scripts you wish to remove.


尝试

1
$ easy_install -m [PACKAGE]

然后

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


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


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

使用这个线程中的信息,我得出了以下结论:

1
cat package_list | xargs -n1 sudo pip uninstall -y

在虚拟环境中,package_listpip freeze中清除(awk)。

要删除几乎所有的python包:

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


仅限我删除此文件:easy-install.pth已工作,其余PIP安装Django==1.3.7


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

解决方案是确保您正在调用MacPorts python:

1
2
3
4
sudo port install python26
sudo port install python_select
sudo python_select python26
sudo port install py26-mysql

希望这有帮助。


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

  • sudo简易安装-m
  • sudo rm-rf/library/python/2.7/site packages/.egg
  • Plaform:Macos High Sierra版本10.13.3