2012-07-24 65 views
2

在OS X 10.6.8,我使用卸载包(至少PIP告诉我这样的)PIP冻结名单上卸载的软件包

sudo pip uninstall pkg_name 

但包仍然显示,当我做

pip freeze 

我尝试再次执行上面的卸载命令,并且pip告诉我程序包未安装。

这里有什么问题?如何验证软件包是否已卸载?如果是这样,我可以刷新某种指数的点子来纠正?

回答

3

我以为你可能有两个pip二进制文件,当你运行sudo时,你的shell首先会选择错误的文件。但是,如果您再次运行它,sudopip删除了该软件包,这没有任何意义。你这样做了吗?

如果您没有运行相同的命令两次,您可能会有不同的pip二进制文件运行卸载和冻结。检查以下两个命令产生相同的输出:

$ sudo pip freeze 
# ... sudo output 
$ pip freeze 
# ... normal output 

无论如何,你可以检查是否正在使用安装包:

$ python -c 'import pkg_name' &> /dev/null && echo installed || echo not installed 

有一个在pip没有排序刷新功能。

+0

我用'sudo'运行'pip freeze'而没有,结果确实不同,三个软件包没有'sudo'。此外,'yolk -l'的输出显示我有两个版本的'pip'安装了旧版本标记为** inactive **,这是否与'pip freeze'的不同输出有关?如果是这样,我应该如何纠正这种情况?谢谢! – MLister 2012-07-26 15:39:47

+0

这与我所知的'pip freeze'输出没有关系。你只是使用两个不同的'pip'二进制文件。您可以使用绝对路径来消除歧义:/ path/to/bin/pip freeze。使用'哪个pip'和'sudo哪个pip'来找到你的'pip'所在的位置。 – 2012-07-30 23:26:19

4

我有这个相同的问题,这是由于一旦文件被卸载,从自制软件破坏符号链接。

$ pip freeze | grep Magic 
Magic-file-extensions==0.2 

$ pip uninstall Magic-file-extensions 
# say `y` at prompt/see it go through as success 

$ pip freeze | grep MagiC# still there :(
Magic-file-extensions==0.2 

$ ll /usr/local/lib/python2.7/site-packages/ | grep MagiC# symlink shows up red 
├── [lrwxr-xr-x tomfuert 98 Feb 16 11:06] Magic_file_extensions-0.2-py2.7.egg-info -> ../../../Cellar/libmagic/5.17/lib/python2.7/site-packages/Magic_file_extensions-0.2-py2.7.egg-info 

$ rm /usr/local/lib/python2.7/site-packages/Magic_file_extensions-0.2-py2.7.egg-info 

$ pip freeze | grep Magic 
# nothing!