Removing pip's cache?
I need to install psycopg2 v2.4.1 specifically. I accidentally did:
pip install psycopg2
Instead of:
pip install psycopg2==2.4.1
That installs 2.4.4 instead of the earlier version.
Now even after I pip uninstall psycopg2 and attempt to reinstall with the correct version, it appears that pip is re-using the cache it downloaded the first time.
How can I force pip to clear out its download cache and use the specific version I'm including in the command?
If using pip 6.0 or newer, try adding the --no-cache-dir
option (source).
If using pip older than pip 6.0, upgrade it with pip install -U pip
.
Clear the cache directory where appropriate for your system
Linux and Unix
~/.cache/pip # and it respects the XDG_CACHE_HOME directory.
OS X
~/Library/Caches/pip
Windows
%LocalAppData%\pip\Cache
UPDATE
With pip 20.1
or later, you can find the full path for your operating system easily by typing this in the command line:
pip cache dir
Example output on my Ubuntu installation:
➜ pip3 cache dir
/home/tawanda/.cache/pip
(pip maintainer here!)
The specific issue of "installing the wrong version due to caching" issue mentioned in the question was fixed in pip 1.4 (back in 2013!):
Fix a number of issues related to cleaning up and not reusing build directories. (#413, #709, #634, #602, #939, #865, #948)
Since pip 6.0 (back in 2014!), pip install
, pip download
and pip wheel
commands can be told to avoid using the cache with the --no-cache-dir
option. (eg: pip install --no-cache-dir <package>
)
Since pip 10.0 (back in 2018!), a pip config
command was added, which can be used to configure pip to always ignore the cache -- pip config set global.cache-dir false
configures pip to not use the cache "globally" (i.e. in all commands).
Since pip 20.1, pip has a pip cache
command to manage the contents of pip's cache.
-
pip cache purge
removes all the wheel files in the cache. -
pip cache remove matplotlib
selectively removes files related to a matplotlib from the cache.
In summary, pip provides a lot of ways to tweak how it uses the cache:
-
pip cache remove matplotlib
: removes all wheel files related to matplotlib from pip's cache. -
pip cache purge
: to clear all wheel files from pip's cache. -
pip config set global.cache-dir false
: configure pip to not use the cache "globally" (in all commands) -
pip install --no-cache-dir <package>
: install a package without using the cache, for just this run.