为什么pip的缓存在使用sudo再次尝试时无效?

时间:2017-04-16 15:05:12

标签: python linux pip

我正在使用pip来安装软件包X,如下所示:

pip3 install --upgrade X

运行后,pip表示需要root权限来安装此软件包,如下所示:

PermissionError: [Errno 13] Permission denied: '/usr/lib/python3.5/site-packages'

所以,我必须使用sudo重新运行命令:

sudo -H pip3 install --upgrade X

问题是pip开始再次下载包。为什么它不利用缓存?

1 个答案:

答案 0 :(得分:1)

virtualenv是一个好主意,因为@ cricket_007在评论中指出。对于您的问题,为什么pip在使用sudo重新运行时不使用缓存,因为缓存目录与拥有正在运行的进程的用户相关。更具体的是Unix和MacOS,它是:

  • Unix:~/.cache/pip and it respects the XDG_CACHE_HOME directory.
  • macOS:~/Library/Caches/pip

您可以在cache docs of pip找到更多详细信息,或在user_cache_dir浏览源代码。因此,当您使用sudo重试时,缓存目录将扩展为/root/.cache