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



我正在尝试删除并再次安装一个包,'python-keystoneclient'使用pip。问题是,当我运行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。不知道为什么会这样

很可能它是通过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__"

必须手动卸载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已经完全卸载。

最新更新