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

12

Ich habe Python installiert 2.7.8 über makeund make installdann über pip get-pip . Ich muss beachten, dass ich hinter einem Proxy arbeite, den ich über eingerichtet habe

  • http_proxy
  • ftp_proxy
  • https_proxy

im

  • meines Benutzers ~/.zshrc
  • Wurzeln /root/.basrc

jetzt kann ich rennen pip

  • auf meinem Benutzerkonto
  • auf Root-Konto

Ich kann es jedoch nicht mit sudo über die Shell meines Benutzers ausführen

sudo pip
sudo: pip: command not found

Was ist hier falsch?

Patryk
quelle

Antworten:

18

Das liegt daran, dass das PATHbeim Laufen anders istsudo . Versuchen Sie zu vergleichen:

which pip
env

vs.

sudo which pip
sudo env

Eine sichere Problemumgehung besteht darin, eine symbolische Verknüpfung zu pipin /usr/local/binoder sogar zu erstellen /usr/bin. Wenn Sie pipmit einem Paketmanager installieren , wird dies automatisch in mehreren (den meisten?) Distributionen ausgeführt.

l0b0
quelle
6
danke, alias sudo='sudo env PATH=$PATH'das Problem gelöst.
Patryk
Damit sind Sicherheitsprobleme verbunden - Sie möchten dies nicht in all Ihren Umgebungen blind einstellen!
10b0
7
Ich bin nicht sicher, ob es in dieser Antwort super klar war, aber die Lösung ist in der Tat einln -s /usr/local/bin/<stuff> /usr/bin/<stuff>
JulienD