我需要安装psycopg2 v2.4.1。我不小心做到了:

 pip install psycopg2

而不是:

 pip install psycopg2==2.4.1

这将安装2.4.4而不是早期版本。

现在,即使在我卸载psycopg2并尝试使用正确的版本重新安装之后,pip似乎正在重新使用它第一次下载的缓存。

如何强制pip清除其下载缓存并使用我在命令中包含的特定版本?


当前回答

在适合您的系统的位置清除缓存目录

Linux和Unix

~/.cache/pip  # and it respects the XDG_CACHE_HOME directory.

OS X

~/Library/Caches/pip

窗户

%LocalAppData%\pip\Cache

更新

对于pip 20.1或更高版本,您可以通过在命令行中键入以下命令轻松找到操作系统的完整路径:

pip cache dir

Ubuntu安装的输出示例:

➜ pip3 cache dir
/home/tawanda/.cache/pip

其他回答

使用pip 20.1或更高版本,您可以执行以下操作:

PIP cache remove matplotlib:从PIP的cache中删除所有与matplotlib相关的wheel文件。 PIP缓存清除:清除PIP缓存中的所有wheel文件。 PIP cache dir:获取缓存的位置。

如果你因为某些原因不想使用pip缓存(根据官方文档,这是一个坏主意),你的选择是:

PIP install——no-cache-dir <package>:安装一个不使用缓存的包,只是为了这次运行。 PIP配置全局设置。No-cache-dir false:配置PIP不“全局”使用缓存(在所有命令中)。


关于这个问题的一些历史(戴上pip维护者的帽子):

问题中提到的“由于缓存而安装错误版本”的具体问题已经在2013年的pip 1.4中修复了!)

修复了一些与清理和不重用构建目录相关的问题。(#413, #709, #634, #602, #939, #865, #948)

自pip 6.0(早在2014年!)以来,pip install、pip download和pip wheel命令可以通过——no-cache-dir选项来避免使用缓存。(例如PIP install——no-cache-dir <package>)

在当时,是的,传递——no-cache-dir是避免这个错误的唯一选项。所以…有点不幸的是,这是“pip缓存删除”的最高搜索结果。:)

自pip 10.0(早在2018年!)以来,添加了pip config命令,可用于将pip配置为始终忽略缓存。这总是可以通过手动编辑相关文件来实现,但这使命令行具有了这种能力。关于pip配置机制的详细信息可以在这里找到。

从pip 20.1开始,pip有一个pip缓存命令来管理pip缓存的内容。

我刚刚遇到了类似的问题,并且发现让pip升级包的唯一方法是删除$PWD/build (%CD%\build在Windows上)目录,该目录可能是以前未完成的安装或以前版本的pip遗留下来的(它现在在成功安装后删除build目录)。

如果使用pip 6.0或更新版本,请尝试添加——no-cache-dir选项(source)。

如果使用pip 6.0以上的版本,请使用pip install -U pip进行升级。

我不得不在Windows 7上删除%TEMP%\pip-build

(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".