我需要安装psycopg2 v2.4.1。我不小心做到了:
pip install psycopg2
而不是:
pip install psycopg2==2.4.1
这将安装2.4.4而不是早期版本。
现在,即使在我卸载psycopg2并尝试使用正确的版本重新安装之后,pip似乎正在重新使用它第一次下载的缓存。
如何强制pip清除其下载缓存并使用我在命令中包含的特定版本?
我需要安装psycopg2 v2.4.1。我不小心做到了:
pip install psycopg2
而不是:
pip install psycopg2==2.4.1
这将安装2.4.4而不是早期版本。
现在,即使在我卸载psycopg2并尝试使用正确的版本重新安装之后,pip似乎正在重新使用它第一次下载的缓存。
如何强制pip清除其下载缓存并使用我在命令中包含的特定版本?
当前回答
更好的方法是删除缓存并重新构建它。通过这种方式,如果您为其他virtualenv再次安装它,它将使用缓存,而不是每次安装时都构建缓存。
例如,当你安装它时,它会说它使用缓存转盘,
Processing <some_prefix>/Library/Caches/pip/wheels/d0/c4/e4/e49fd07bca8dda00dd6b4bbc606aa05a25aacb00d45747a47a/horovod-0.19.3-cp37-cp37m-macosx_10_9_x86_64.wh
只需删除该文件并重新启动安装。
其他回答
PIP可以安装一个忽略缓存的包,就像这样
pip --no-cache-dir install scipy
如果使用virtualenv,请在环境根目录下查找构建目录。
简单的
rm -d -r "$(pip cache dir)"
在archlinux上pip缓存位于~/。缓存/pip,我可以通过删除其中的http文件夹来解决我的问题。
使用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缓存的内容。