Die Root-Shell sieht pip, aber sudo pip “ Befehl nicht gefunden ”

Ich habe Python 2.7.8 über make und make install installiert und dann über get-pip . Ich muss beachten, dass ich hinter einem Proxy arbeite, den ich über

  • http_proxy
  • https_proxy

in

  • meinem Benutzer „s ~/.zshrc
  • root“ s /root/.basrc

jetzt bin ich pip

  • kann auf meinem Benutzerkonto
  • auf dem Root-Konto

ausgeführt werden Ich kann es jedoch nicht über die Shell meines Benutzers mit sudo

sudo pip sudo: pip: command not found 

ausführen. Was ist hier falsch?

Antwort

Das liegt daran, dass die PATH anders ist, wenn läuft mit sudo . Versuchen Sie Folgendes zu vergleichen:

which pip env 

vs.

sudo which pip sudo env 

Eine sichere Problemumgehung besteht darin, eine zu erstellen symbolischer Link zu pip in /usr/local/bin oder sogar /usr/bin. Wenn Sie pip mit einem Paketmanager installieren, wird dies automatisch für mehrere (die meisten?) Distributionen ausgeführt.

Kommentare

  • danke, alias sudo='sudo env PATH=$PATH' hat das Problem behoben.
  • Damit sind Sicherheitsprobleme verbunden – Sie haben ' Ich möchte dies nicht blind in all Ihren Umgebungen einstellen!
  • Ich ' bin mir nicht sicher, ob es in dieser Antwort super klar war, aber die Lösung ist in der Tat eine ln -s /usr/local/bin/<stuff> /usr/bin/<stuff>

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.