删除pip的缓存?

时间:2012-03-01 04:06:35

标签: python pip

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

 pip install psycopg2

而不是:

 pip install psycopg2==2.4.1

安装2.4.4而不是早期版本。

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

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

19 个答案:

答案 0 :(得分:389)

如果使用pip 6.0或更高版本,请尝试添加--no-cache-dir option

如果使用比pip 6.0旧的pip,请使用pip install -U pip升级它。

答案 1 :(得分:312)

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

Linux和Unix

var data = (from product in context.Products
           from department in context.Departments
           from category in context.Categories
           where product.DeptId == department.DeptId
           && product.CatId == category.CatId
           select new 
           {
               product.Code,
               product.Name,
               department.Name,
               category.Name
           }).Distinct.ToList();

OS X

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

~/Library/Caches/pip

答案 2 :(得分:96)

来自https://pip.pypa.io/en/latest/reference/pip_install.html#caching的文档:

  

从v6.0开始,pip提供了一个默认的默认缓存   功能类似于Web浏览器的功能。缓存是通过   默认情况下,设计做正确的事情,默认情况下你可以禁用   缓存并始终使用--no-cache-dir访问PyPI   选项。

答案 3 :(得分:84)

(这里是点子维护者!)

该问题中提到的“由于缓存导致安装错误版本”的特定问题已在pip 1.4中修复(早在2013年!):

解决了许多与清理和不重用构建目录有关的问题。 (#413,#709,#634,#602,#939,#865,#948)

自从pip 6.0(2014年开始!)以来,可以告诉pip installpip downloadpip wheel命令避免将缓存与--no-cache-dir选项一起使用。 (例如:pip install --no-cache-dir <package>

自pip 10.0(早在2018年!)以来,添加了pip config命令,可用于将pip配置为始终忽略缓存-pip config set global.cache-dir false将pip配置为不使用缓存“全局”(即在所有命令中)。

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

  • pip cache purge删除缓存中的所有wheel文件。
  • pip cache remove matplotlib有选择地从缓存中删除与matplotlib相关的文件。

总而言之,pip提供了许多调整缓存使用方式的方法:

  • pip install --no-cache-dir <package>:仅运行一次即可安装软件包,而无需使用缓存。
  • pip config set global.cache-dir false:将pip配置为不“全局”使用所有命令中的缓存
  • pip cache remove matplotlib:从pip的缓存中删除所有与matplotlib相关的wheel文件。
  • pip cache purge:清除pip缓存中的所有文件。

答案 4 :(得分:56)

pip可以安装py忽略缓存,就像这样

pip --no-cache-dir install scipy

答案 5 :(得分:29)

在Ubuntu上,我不得不删除/tmp/pip-build-root

答案 6 :(得分:14)

Since pip 20.1b1(于2020年4月21日发布)并“添加了pip cache命令,用于检查/管理点子的转盘缓存”,可以发出以下命令:

pip cache purge

参考指南在这里:
https://pip.pypa.io/en/stable/reference/pip_cache/
相应的pull request is here

答案 7 :(得分:8)

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

答案 8 :(得分:5)

简单

rm -d -r "$(pip cache dir)"

答案 9 :(得分:4)

在archlinux pip缓存位于〜/ .cache / pip,我可以通过删除其中的http文件夹来解决我的问题。

答案 10 :(得分:3)

在我的Mac上,我必须删除缓存目录~/Library/Caches/pip/

答案 11 :(得分:3)

如果您希望默认设置--no-cache-dir选项,则可以将其放入pip.conf

[global]
no-cache-dir = false

pip.conf的位置取决于您的操作系统。有关更多信息,请参见documentation

答案 12 :(得分:3)

在Windows 7上,我不得不删除%HOMEPATH%/pip

答案 13 :(得分:2)

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

答案 14 :(得分:2)

如果使用virtualenv,请在您的环境根目录下查找build目录。

答案 15 :(得分:1)

在Mac OS(Mavericks)上,我不得不删除/tmp/pip-build/

答案 16 :(得分:1)

$mail = new PHPMailer(true);                             

if(isset($_POST['submit'])) 
{
try {
  $mail->SMTPDebug = 2;                                 // Enable verbose debug output
  $mail->isSMTP();                                      // Set mailer to use SMTP
  $mail->SMTPAuth = true;                               // Enable SMTP authentication
  $mail->XMailer = ' ';
  $mail->Host = 'smtp.gmail.com';
  $mail->Port = '587';
  $mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
  $mail->Priority = 1;
  $mail->isHTML(true);      
  
   // $mail->Username = 'email1@gmail.com';
   // $mail->Password = 'email1apppw';
   // $mail->SetFrom('email1@gmail.com', 'Email One');
   // $mail->AddReplyTo('email1@gmail.com', 'Email One');

   $mail->Username = 'email2@gmail.com';
   $mail->Password = 'email2apppw';
   $mail->SetFrom('email2@gmail.com', 'Email One');
   $mail->AddReplyTo('email2@gmail.com', 'Email One');

   $mail->send();  

答案 17 :(得分:0)

一种更好的方法是删除缓存并重建它。这样,如果您再次为其他virtualenv安装它,它将使用缓存而不是每次安装时都进行构建。

例如,当您安装它时,它将说它使用了缓存的滚轮,

Processing <some_prefix>/Library/Caches/pip/wheels/d0/c4/e4/e49fd07bca8dda00dd6b4bbc606aa05a25aacb00d45747a47a/horovod-0.19.3-cp37-cp37m-macosx_10_9_x86_64.wh

只需删除其中一个,然后重新开始安装即可。

答案 18 :(得分:-2)

  

(...)看来pip正在重新使用缓存(...)

我很确定这不是发生了什么。 Pip曾经(错误地)重用构建目录而不是缓存。 This was fixed in version 1.4 of pip于2013-07-23发布。