ルートシェルはpipを認識しますが、sudo pipは「コマンドが見つかりません」


12

私はpython 2.7.8をインストールmakemake install、次にget-pipを介してpipをインストールしました。私が経由して設定したプロキシの背後で作業していることに注意する必要があります

  • http_proxy
  • ftp_proxy
  • https_proxy

  • 私のユーザーの ~/.zshrc
  • ルーツ /root/.basrc

今、私は走ることができます pip

  • 私のユーザーアカウント
  • rootアカウント

しかし、sudoを使用してユーザーのシェルから実行することはできません

sudo pip
sudo: pip: command not found

ここで何が問題になっていますか?

回答:


18

これはPATH、で実行するとが異なるsudoためです。比較してみてください:

which pip
env

sudo which pip
sudo env

安全な回避策の1つは、pipin /usr/local/binまたはへのシンボリックリンクを作成すること/usr/binです。pipパッケージマネージャーを使用してインストールすると、いくつかの(ほとんどの)ディストリビューションでこれが自動的に行われます。


6
おかげで、alias sudo='sudo env PATH=$PATH'問題を解決しました。
Patryk 2014年

これにはセキュリティの問題があります-すべての環境で盲目的にこれを設定したくないです!
l0b0 14年

7
この回答でそれが非常に明確であったかどうかはわかりませんが、解決策は確かにln -s /usr/local/bin/<stuff> /usr/bin/<stuff>
JulienD
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.