簡體   English   中英

sudo -H pip install 和 pip --user install 的區別

[英]Difference between sudo -H pip install and pip --user install

我想知道這兩個命令之間有什么區別(我覺得它們是相同的):

  • sudo -H pip install <package>
  • pip --user install <package>

更多信息:
從 sudo 聯機幫助頁:

-H, --set-home
    Request that the security policy set the HOME environment
    variable to the home directory specified by the target user's
    password database entry. Depending on the policy, this may be
    the default behavior.

和 pip 用戶指南: https://pip.pypa.io/en/stable/user_guide/


相關問題:
pip 安裝和 sudo pip 安裝有什么區別?
“pip install --user ...”的目的是什么?
sudo pip 安裝 VS pip 安裝 --user
但是他們都沒有談論sudo -H選項或兩者之間的確切區別。

sudo 是“超級用戶做”的縮寫。 它只是以 root 權限運行命令,如果您要安裝到通常無法訪問的目錄,這可能很有用。

但是,在您給出的示例中,這兩個命令的功能相同,因為您不需要 root 權限來pip install --user

區別歸結為授予 package 的權限,以及 package 的安裝位置。 當您以 root 身份運行命令時,package 將以 root 權限安裝。

這是一個例子:

運行sudo -H pip3 install coloredlogs結果如下:

$ sudo pip3 show coloredlogs | grep Location
Location: /usr/local/lib/python3.8/dist-packages

$ ls -l /usr/local/lib/python3.8/dist-packages
drwxr-sr-x 4 root staff 4096 Feb 25 01:14 coloredlogs

$ which coloredlogs
/usr/local/bin/coloredlogs

運行pip3 install --user <package>結果如下:

$ pip3 show coloredlogs | grep Location
Location: /home/josh/.local/lib/python3.8/site-packages

$ ls -l /home/josh/.local/lib/python3.8/site-packages
drwxrwxr-x 4 josh josh 4096 Feb 25 01:14 coloredlogs

$ which coloredlogs
coloredlogs not found

請注意兩者之間的位置差異,並注意使用--user標志安裝時 package 未安裝在 PATH 上。 如果出於某種原因我想直接調用 package,我需要將/home/josh/.local/bin添加到我的路徑中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM