在OS X 10.6.8上,我使用(至少pip告诉我)卸载了一个包
sudo pip uninstall pkg_name
但是当我这样做时,包裹仍会出现
pip freeze
我尝试再次执行上面的卸载命令,并且pip告诉我没有安装包。
这是什么问题?如何验证软件包是否已卸载?如果是这样,我可以刷新某种pip索引来纠正吗?
答案 0 :(得分: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!
答案 1 :(得分:3)
我认为您可能有两个pip
二进制文件,当您以sudo
运行时,您的shell首先会选择错误的二进制文件。但是,如果再次运行sudo
并且pip
删除了包,则没有任何意义。你做到了吗?
如果您没有两次运行相同的命令,则可能会有不同的pip
二进制文件运行卸载并冻结。检查以下两个命令是否产生相同的输出:
$ sudo pip freeze
# ... sudo output
$ pip freeze
# ... normal output
无论如何,您可以使用以下方法检查软件包是否已安装:
$ python -c 'import pkg_name' &> /dev/null && echo installed || echo not installed
pip
中没有任何类型的刷新功能。
答案 2 :(得分:0)
如果您使用虚拟环境,请尝试使用clean命令。不要忘记sudo。
sudo pipenv clean