2017-04-16 52 views
0

我使用PIP安裝包X,如下所示:爲什麼使用sudo再次嘗試pip的緩存不工作?

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

因爲'sudo'運行在不同的shell環境中 –

+2

爲什麼不使用virtualenv? –

+0

我想在不同的項目中使用這個包,我是否必須將它安裝在virtualenv中? – AmirHJ

回答

1

virtualenv是@ cricket_007在評論中指出的一個好主意。對於你的問題,當你用sudo重新運行時,pip不使用緩存,這是因爲緩存目錄與擁有正在運行的進程的用戶相關。更具體的針對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