我正在使用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开始再次下载包。为什么它不利用缓存?
答案 0 :(得分:1)
virtualenv
是一个好主意,因为@ cricket_007在评论中指出。对于您的问题,为什么pip在使用sudo
重新运行时不使用缓存,因为缓存目录与拥有正在运行的进程的用户相关。更具体的是Unix和MacOS,它是:
~/.cache/pip and it respects the XDG_CACHE_HOME directory.
~/Library/Caches/pip
您可以在cache docs of pip找到更多详细信息,或在user_cache_dir浏览源代码。因此,当您使用sudo
重试时,缓存目录将扩展为/root/.cache