我正在尝试使用pysqlite
从我的系统中删除pip
。
我所做的事情毫无意义:
$ pip uninstall pysqlite
该命令有效,但请注意:
$ pip freeze
[...]
pysqlite==1.0.1
让我们再试一次
$ pip uninstall pysqlite
Can't uninstall 'pysqlite'. No files were found to uninstall.
Nop,似乎已删除但仍显示在pip freeze
现在很有趣
$ pip install pysqlite
Requirement already satisfied (use --upgrade to upgrade): pysqlite in /usr/lib/python2.6/dist-packages
Cleaning up...
足够公平:
$ pip install -U pysqlite
[...]
error: command 'gcc' failed with exit status 1
[...]
Can't roll back pysqlite; was not uninstalled
[...]
我只是不明白。为什么不能pip卸载pysqlite?
答案 0 :(得分:14)
转到/usr/lib/python2.6/site-packages/pysqlite*.egg/
(或在python路径中存储鸡蛋的任何其他位置)并查找installed-files.txt
文件。
如果它不存在,pip
将无法卸载它,如果是,则删除其中的所有文件,并且您将删除pysqlite。正如Martijn建议的那样,您还应检查是否未使用其他软件包管理器安装软件包。
如果您没有installed-files.txt
,并且您的软件包尚未通过第三方软件包管理器安装,您应该查看鸡蛋所在的位置,并将其从python路径中删除。通常,egg还会在它们所在的目录中写入文件,因此您应该在目录中查找pysqlite/
目录,其中包含pysqlite.egg
。
答案 1 :(得分:11)
为了记录,我能够通过使用--ignore-installed标志来升级我遇到此问题的软件包,例如。
pip install python-dateutil --upgrade --ignore-installed
答案 2 :(得分:1)
换个角色。
我pip-installed ykdl
,需要m3u8
和iso8601
。
然后我想全部卸载它们pip uninstall ykdl iso8601 m3u8
。ykdl
和iso8601
已经消失,但我无法卸载m3u8
。我看到了它pip list
。我也很困惑。
最后。当我尝试导入m3u8时,它失败并说“需要iso8601”。所以我安装了iso8601
,然后逐个卸载m3u8
,iso8601
。它工作
=====
是在ubuntu上。但是在我的Windows 10上,我成功地逐步卸载了iso8601
m3u8
ykdl
。精彩!