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 cache purge
.
pip cache purge
only works on pip 20.1 according to the answer you link to. This answer seems to apply to all pip
versions and all platforms, which would make it more generally useful but I don't know if that's the case.
With pip 20.1 or later, you can do:
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 cache dir: to get the location of the cache.
If you want to not use the pip cache for some reason (which is a bad idea, according the official docs), your options are:
pip install --no-cache-dir
pip config set global.no-cache-dir false: configure pip to not use the cache "globally" (in all commands).
Some history around this question (puts on pip maintainer hat):
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. (e.g. pip install --no-cache-dir <package>
)
Back then, yes, passing --no-cache-dir
was the only option to avoid this bug. So... it's a bit unfortunate that this is the top search result on "pip cache remove". :)
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. This was always possible by manually editing the relevant files, but this surfaced that ability to the command line. Details on pip's configuration mechanisms is available here.
Since pip 20.1, pip has a pip cache
command to manage the contents of pip's cache.
ERROR: No matching packages
but I installed a lot of different packages already
pip cache list
if it doesn't show anything than you don't have anything cached.
pip cache purge
and pip cache list
suggest cache is empty but du -hs ~/.cache/pip
shows 242MB.
pip config set global.cache-dir false
. It should be pip config set global.no-cache-dir false
.
ERROR: unknown command "cache" - maybe you meant "check"
From documentation at https://pip.pypa.io/en/latest/reference/pip_install.html#caching:
Starting with v6.0, pip provides an on-by-default cache which functions similarly to that of a web browser. While the cache is on by default and is designed do the right thing by default you can disable the cache and always access PyPI by utilizing the --no-cache-dir option.
pip can install a package ignoring the cache, like this
pip --no-cache-dir install scipy
Since pip 20.1b1, which was released on 21 April 2020 and "added pip cache
command for inspecting/managing pip’s wheel cache", it is possible to issue this command:
pip cache purge
The reference guide is here:
https://pip.pypa.io/en/stable/reference/pip_cache/
The corresponding pull request is here.
ERROR: unknown command "cache" - maybe you meant "check"
pip install --upgrade pip
or pip3 install --upgrade pip
.
pip
I get the error ERROR: unknown command "cache" - maybe you meant "check"
On Ubuntu, I had to delete /tmp/pip-build-root
.
/tmp/pip_build_root/
(note underscores)
If you like to set the --no-cache-dir
option by default, you can put this into pip.conf:
[global]
no-cache-dir = false
Note 1: It's confusing, but to enable the no-cache-dir
option you actually have to set it to false
. Pretty silly if you ask me... but that's how it is. There is a github issue to fix this.
Note 2: The location of pip.conf
depends on your OS. See the documentation for more info.
I just had a similar problem and found that the only way to get pip to upgrade the package was to delete the $PWD/build
(%CD%\build
on Windows) directory that might have been left over from a previously unfinished install or a previous version of pip (it now deletes the build directories after a successful install).
On archlinux pip cache is located at ~/.cache/pip, I could solve my issue by removing the http folder inside it.
On my mac I had to remove the cache directory ~/Library/Caches/pip/
Simply
rm -d -r "$(pip cache dir)"
On Windows 7, I had to delete %HOMEPATH%/pip
.
If using virtualenv, look for the build
directory under your environments root.
I had to delete %TEMP%\pip-build On Windows 7
(pyvenv.d) jdoe$ pip --version # pip version for this answer (or newer).
pip 21.1.1
(pyvenv.d) jdoe$ pip cache --help # Review all options available to you.
(pyvenv.d) jdoe$ pip cache dir # Cache-directory for pip(1).
/home/jdoe/.cache/pip
(pyvenv.d) jdoe$ pip cache purge # Purge cache-directory (by example).
Files removed: 621 # If cache-directory is already empty, the
# output will be: "ERROR: No matching packages".
On Mac OS (Mavericks), I had to delete /tmp/pip-build/
A better way to do it is to delete the cache and rebuild it. In this way, if you install it again for other virtualenv, it will use the cache instead of building every time when you install it.
For example, when you install it, it will say it uses cached wheel,
Processing <some_prefix>/Library/Caches/pip/wheels/d0/c4/e4/e49fd07bca8dda00dd6b4bbc606aa05a25aacb00d45747a47a/horovod-0.19.3-cp37-cp37m-macosx_10_9_x86_64.wh
Just delete that one and restart your install.
(...) it appears that pip is re-using the cache (...)
I'm pretty sure that's not what's happening. Pip used to (wrongly) reuse build directory not cache. This was fixed in version 1.4 of pip which was released on 2013-07-23.
Success story sharing
$TMPDIR