Why can't pip uninstall pysqlite?

shkschneider picture shkschneider · Oct 30, 2012 · Viewed 24.1k times · Source

I'm trying to remove pysqlite from my system using pip.

What I get doing so makes no sense:

$ pip uninstall pysqlite

The command worked, but watch this:

$ pip freeze
[...]
pysqlite==1.0.1

Let's try again

$ pip uninstall pysqlite
Can't uninstall 'pysqlite'. No files were found to uninstall.

Nop, seems removed but still show up in pip freeze

Now comes the fun

$ pip install pysqlite
Requirement already satisfied (use --upgrade to upgrade): pysqlite in /usr/lib/python2.6/dist-packages
Cleaning up...

Fair enough:

$ pip install -U pysqlite
[...]
error: command 'gcc' failed with exit status 1
[...]
Can't roll back pysqlite; was not uninstalled
[...]

I just don't get it. Why can't pip uninstall pysqlite?

Answer

zmo picture zmo · Oct 30, 2012

Go to your /usr/lib/python2.6/site-packages/pysqlite*.egg/ (or anywhere else you store your eggs in your python path) and look for the installed-files.txt file.

If it does not exists, pip will not be able to uninstall it, if it does, you remove all the files within and you're rid of pysqlite. And as Martijn suggests, you should also check if you did not install your package with another package manager.

If you don't have the installed-files.txt, and your package has not been installed through a third-part package manager, you shall look up where your egg is, and remove it from the python path. Usually, eggs also write files in the directory where they lay, so you should look for a pysqlite/ directory in the directory where lays pysqlite.egg.