Python easy_install
使得安装新包非常方便.但是,据我所知,它没有实现依赖项管理器的其他常见功能 - 列出和删除已安装的软件包.
找出已安装的内容的最佳方法是什么,以及删除已安装软件包的首选方法是什么?如果我手动删除包(例如,通过rm /usr/local/lib/python2.6/dist-packages/my_installed_pkg.egg
或类似),是否有任何文件需要更新?
pip是setuptools/easy_install的替代品,它提供了一个"卸载"命令.
根据安装说明安装pip :
$ 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]
它删除了包的所有依赖项.
然后删除该包的egg文件:
$ sudo rm -rf /usr/local/lib/python2.X/site-packages/[PACKAGE].egg
所有的信息在其他的答案,但没有总结两者的请求,或者似乎使事情不必要的复杂性:
为了您的删除需要使用:
pip uninstall
(安装使用easy_install pip
)
对于'list installed packages'需要使用:
pip freeze
要么:
yolk -l
这可以输出更多的包裹细节.
(通过easy_install yolk
或安装pip install yolk
)
网上有几个消息来源暗示通过使用-m选项重新安装软件包然后只删除lib /中的.egg文件和bin /中的二进制文件.此外,有关此setuptools问题的讨论可以在python bug跟踪器上找到setuptools issue 21.
编辑:添加了python bugtracker的链接.
如果问题对你来说是一个严重的麻烦,你可能会考虑virtualenv.它允许您创建一个封装python库的环境.您可以在那里而不是在全局site-packages目录中安装软件包.您在该环境中运行的任何脚本都可以访问这些包(也可以选择您的全局包).在评估我不确定我想要/需要全局安装的软件包时,我经常使用它.如果您决定不需要该软件包,那么只需将虚拟环境吹走即可.它非常易于使用.制作一个新的环境:
$>virtualenv /path/to/your/new/ENV
virtual_envt会在新环境中为您安装setuptools,因此您可以执行以下操作:
$>ENV/bin/easy_install
您甚至可以创建自己的boostrap脚本来设置新环境.因此,使用一个命令,您可以创建一个新的虚拟环境,例如,默认安装python 2.6,psycopg2和django(如果需要,您可以安装特定于env的特定版本的python).
官方(?)说明:http://peak.telecommunity.com/DevCenter/EasyInstall#uninstalling-packages
如果您已将软件包替换为其他版本,则只需删除PackageName-versioninfo.egg文件或目录(位于安装目录中)即可删除不需要的软件包.
如果要删除当前安装的软件包版本(或软件包的所有版本),则应首先运行:
easy_install -mxN PackageName这将确保Python不会继续搜索您计划删除的包.完成此操作后,您可以安全地删除.egg文件或目录,以及要删除的任何脚本.
尝试
$ easy_install -m [PACKAGE]
然后
$ rm -rf .../python2.X/site-packages/[PACKAGE].egg
要列出已安装的Python包,您可以使用yolk -l
.你需要先使用easy_install yolk
.
遇到这个问题,同时尝试卸载随时间安装的许多随机Python包.
使用来自此线程的信息,这就是我想出的:
cat package_list | xargs -n1 sudo pip uninstall -y
该package_list
从清理(AWK)pip freeze
中的virtualenv.
删除几乎所有Python包:
yolk -l | cut -f 1 -d " " | grep -v "setuptools|pip|ETC.." | xargs -n1 pip uninstall -y