PIP卸载显示已卸载的软件包,但实际上并非如此

时间:2013-01-11 10:52:15

标签: pip openstack

我正在尝试使用pip删除并再次安装包'python-keystoneclient'。问题是,当我运行pip uninstall python-keystoneclient时,它显示已成功卸载:

root@openstack1:~/cinder# pip uninstall python-keystoneclient
Uninstalling python-keystoneclient:
Proceed (y/n)? y
Successfully uninstalled python-keystoneclient

但当我执行pip search python-keystoneclient时,会显示:

root@openstack1:~/cinder# pip search python-keystoneclient
python-keystoneclient     - Client library for OpenStack Identity API
                        (Keystone)
INSTALLED: 0.2.1 (latest)

我已尝试重新安装该软件包,但显示requirement already satisfied。不知道为什么会这样。

2 个答案:

答案 0 :(得分:0)

它可能通过PIP并不完全清楚的包或机制安装在其他地方。加上最后我听说,pip卸载工作在简单的情况下,但它很容易愚弄,并不是在所有平台上都完全一致。

我已经采取类似

的做法
python -c "import sys;import pprint;pprint.pprint(sys.path)"

向我展示python可能在哪里找到它的模块 - 如果你做了类似的事情就会告诉你如何在python的系统路径中的某个地方留下一个本地目录(在我做了“python setup.py develop”之后发生在我身上)从一个目录,当我是根,而不是注意)。

您也可以通过类似的设置向keystoneclient询问它的导入位置,您可以使用它来查找和核对它:

python -c "import keystoneclient;print keystoneclient.__file__"

答案 1 :(得分:0)

您必须手动卸载keystone-client。

在我的服务器上,在
/usr/local/lib/python2.7/dist-packages/python_keystoneclient-0.3.2-py2.7.egg-info(您的服务器上可能有不同的版本号)
你可以找到一个installed-files.txt文件,它记录了keystone-client安装的所有文件。

然后,在dist-packages中删除它们和相关目录。

cat installed-files.txt | xargs sudo rm -rf
cd ..
sudo rm -rf keystoneclient python_keystoneclient-0.3.2-py2.7.egg-info

现在,keystoneclient已完全卸载。