Python 为什么再次使用sudo时pip的缓存不工作?

Python 为什么再次使用sudo时pip的缓存不工作?,python,linux,pip,Python,Linux,Pip,我使用pip安装程序包X,如下所示: pip3 install --upgrade X PermissionError: [Errno 13] Permission denied: '/usr/lib/python3.5/site-packages' 运行后,pip表示需要root访问权限才能安装此软件包,如下所示: pip3 install --upgrade X PermissionError: [Errno 13] Permission denied: '/usr/lib/pytho

我使用pip安装程序包X,如下所示:

pip3 install --upgrade X
PermissionError: [Errno 13] Permission denied: '/usr/lib/python3.5/site-packages'
运行后,pip表示需要root访问权限才能安装此软件包,如下所示:

pip3 install --upgrade X
PermissionError: [Errno 13] Permission denied: '/usr/lib/python3.5/site-packages'
因此,我必须使用sudo重新运行命令:

sudo -H pip3 install --upgrade X
问题是pip再次开始下载包。为什么它不利用缓存?

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

Unix:~/.cache/pip,它尊重XDG\u cache\u主目录。 macOS:~/Library/Caches/pip
您可以在上找到更多详细信息,或在上浏览源代码。因此,当您使用sudo重试时,缓存目录将扩展到/root/.cache

,因为sudo运行在不同的shell环境中。但是,为什么不使用virtualenv?我想在不同的项目中使用此软件包,是否必须将其安装在virtualenv中?您可以对所有项目使用一个virtualenv,或者每个项目使用一个virtualenv。关键是你不会被你的操作系统拒绝