Python的easy_install使得安装新包非常方便。然而,据我所知,它没有实现依赖管理器的其他常见功能——列出和删除已安装的包。
easy_install
找出安装了什么的最佳方法是什么,删除已安装软件包的首选方法是什么?如果我手动删除软件包(例如通过rm /usr/local/lib/python2.6/dist-packages/my_installed_pkg.egg或类似方式),是否有任何文件需要更新?
rm /usr/local/lib/python2.6/dist-packages/my_installed_pkg.egg
网络上有几个来源建议通过使用-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中删除匹配的行
.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一起安装的软件包
pip uninstall
官方(?)说明:http://peak.telecommunity.com/DevCenter/EasyInstall#uninstalling-packages
如果您已经用另一个版本替换了一个包,那么您可以通过删除PackageName-versioninfo.egg文件或目录(在安装目录中找到)来删除不需要的包。 如果要删除当前安装的包版本(或包的所有版本),您应该首先运行: easy_install -mxN PackageName 这将确保Python不会继续搜索您计划删除的包。完成此操作后,您可以安全地删除. egg文件或目录,以及您希望删除的任何脚本。
如果您已经用另一个版本替换了一个包,那么您可以通过删除PackageName-versioninfo.egg文件或目录(在安装目录中找到)来删除不需要的包。
如果要删除当前安装的包版本(或包的所有版本),您应该首先运行:
easy_install -mxN PackageName
这将确保Python不会继续搜索您计划删除的包。完成此操作后,您可以安全地删除. egg文件或目录,以及您希望删除的任何脚本。
要列出已安装的Python包,您可以使用yolk -l。不过,您需要先使用easy_install yolk。
yolk -l
easy_install yolk
在试图卸载随时间安装的许多随机Python包时遇到了这个问题。
使用来自这个线程的信息,这就是我想出的:
cat package_list | xargs -n1 sudo pip uninstall -y
package_list从虚拟环境中的pip freeze中清理(awk)。
package_list
pip freeze
要删除几乎所有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
希望这有帮助。
首先你必须运行这个命令:
它删除了包的所有依赖项。
然后删除该包的鸡蛋文件:
$ sudo rm -rf /usr/local/lib/python2.X/site-packages/[PACKAGE].egg
所有的信息都在其他答案中,但没有一个总结了两者你的请求,或者似乎让事情变得不必要的复杂:
您的删除需要使用:
pip uninstall <package>
(使用easy_install pip安装)
easy_install pip
对于您的“列表安装包”需要使用:
或:
它可以输出更多的包细节。
(通过easy_install yolk或pip install yolk安装)
pip install yolk
我只删除这个文件:easy-install.pth 工作,休息pip安装django==1.3.7
这对我很有效。它与之前的答案相似,但包的路径不同。
平台:MacOS High Sierra版本10.13.3