web-dev-qa-db-ja.com

Sudo -H pip -Vがpip -Vと異なる理由

this を見ましたが、ルートのパスにはpipへのアクセス権がありません。

これが私の端末出力です。

lxa @ lxa-pc:〜$ 
 lxa @ lxa-pc:〜$ Sudo -H pip -V 
 [Sudo] lxa的密码:
 pip 8.1.1 from/usr/lib/python3/dist-packages(python 3.5)
 lxa @ lxa-pc:〜$ pip-V 
 pip 9.0.1 from /home/lxa/.local/lib/python3 .5/site-packages(python 3.5)
 root @ lxa-pc:〜$ echo SPATH 
/home/lxa/bin:/home/lxa/.local/bin:/ usr/local/sbin:/ usr/local/bin:/ usr/sbin:/ usr/bin:/ sbin:/ bin:/ usr/games:/ usr/local/games:/ snap/bin 
 lxa @ lxa-pc:〜$ Sudo su 
 lxa @ lxa-pc:/ home/lxa#
 echo SPATH 
/usr/local/sbin:/ usr/local/bin: /usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
lxa@lxa-pc:/home/lxa#
2
lxacoder

pip 8.1.1は、デフォルトのUbuntu 16.04リポジトリのpython-pipのバージョンです。パッケージをpipでインストールする場合、オプション_-H_を使用して、HOME環境変数をターゲットユーザーのパスワードデータベースエントリで指定されたホームディレクトリに設定します。

リンクした質問 で、2つの異なるバージョンのpipがインストールされました。 _pip -V_がインストールされている最新バージョンのpip(pip 9.0.1)を返す理由を確認するには、次のコマンドを実行します。

_Sudo -H pip -V
_

このコマンドは、デフォルトのUbuntu 16.04インストールでpip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)を返します。デフォルトのUbuntu 16.04インストールでは、コマンド_Sudo -H pip3 -V_はpip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)を返します。

_which python3  
_

このコマンドは、デフォルトのUbuntu 16.04インストールで_/usr/bin/python3_を返します。

_which pip
_

このコマンドは、デフォルトのUbuntu 16.04インストールで_/usr/bin/pip_を返します。デフォルトのUbuntu 16.04インストールでは、コマンド_which pip3_は_/usr/bin/pip3_を返します。

1
karel