Python的easy_install使得安装新包极其方便。然而,据我所知,它没有实现依赖管理器的其他常见特性——列出和删除已安装的包。
找出已安装包的最佳方法是什么,以及删除已安装包的首选方法是什么?如果我手动删除包(例如rm /usr/local/lib/python2.6/dist-packages/my_installed_pkg),是否有任何文件需要更新。鸡蛋或类似的)?
Python的easy_install使得安装新包极其方便。然而,据我所知,它没有实现依赖管理器的其他常见特性——列出和删除已安装的包。
找出已安装包的最佳方法是什么,以及删除已安装包的首选方法是什么?如果我手动删除包(例如rm /usr/local/lib/python2.6/dist-packages/my_installed_pkg),是否有任何文件需要更新。鸡蛋或类似的)?
当前回答
Pip是setuptools/easy_install的替代方案,它提供了一个“卸载”命令。
按照安装说明安装pip:
$ wget https://bootstrap.pypa.io/get-pip.py
$ python get-pip.py
然后可以使用pip uninstall删除使用easy_install安装的包
其他回答
网上有几个来源建议使用-m选项重新安装包,然后删除lib/中的.egg文件和bin/中的二进制文件。此外,关于此setuptools问题的讨论可以在python错误跟踪器中作为setuptools问题21找到。
编辑:添加了python bug跟踪器的链接。
首先你必须运行这个命令:
$ easy_install -m [PACKAGE]
它删除了包的所有依赖项。
然后删除该包的鸡蛋文件:
$ sudo rm -rf /usr/local/lib/python2.X/site-packages/[PACKAGE].egg
If the problem is a serious-enough annoyance to you, you might consider virtualenv. It allows you to create an environment that encapsulates python libraries. You install packages there rather than in the global site-packages directory. Any scripts you run in that environment have access to those packages (and optionally, your global ones as well). I use this a lot when evaluating packages that I am not sure I want/need to install globally. If you decide you don't need the package, it's easy enough to just blow that virtual environment away. It's pretty easy to use. Make a new env:
$>virtualenv /path/to/your/new/ENV
Virtual_envt在新环境中为你安装setuptools,所以你可以这样做:
$>ENV/bin/easy_install
您甚至可以创建自己的boostrap脚本来设置新环境。因此,用一个命令,你就可以创建一个新的虚拟env,比如python 2.6, psycopg2和默认安装的django(如果你愿意,你也可以安装env特定版本的python)。
所有的信息都在其他答案中,但没有一个总结了你的要求,或者似乎把事情变得不必要的复杂:
为您的拆卸需要使用: PIP uninstall <package> (使用easy_install pip安装) 对于您的“列表安装包”需要使用: 皮普冻结 或者: 蛋黄- l 它可以输出更多的包细节。 (通过easy_install蛋黄或pip Install蛋黄安装)
我在MacOS X Leopard 10.6上也遇到了同样的问题。
解决方案是确保你正在调用MacPorts Python:
sudo port install python26
sudo port install python_select
sudo python_select python26
sudo port install py26-mysql
希望这能有所帮助。