为什么不能pip卸载pysqlite?

时间:2012-10-30 09:29:43

标签: python pip pysqlite

我正在尝试使用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?

3 个答案:

答案 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,需要m3u8iso8601

然后我想全部卸载它们pip uninstall ykdl iso8601 m3u8ykdliso8601已经消失,但我无法卸载m3u8。我看到了它pip list。我也很困惑。

最后。当我尝试导入m3u8时,它失败并说“需要iso8601”。所以我安装了iso8601,然后逐个卸载m3u8iso8601。它工作

=====

是在ubuntu上。但是在我的Windows 10上,我成功地逐步卸载了iso8601 m3u8 ykdl。精彩!