La shell root vede pip ma sudo pip "comando non trovato"


12

Ho installato python 2.7.8 via makee make installpoi pip tramite get-pip . Devo notare che lavoro dietro un proxy che ho impostato tramite

  • http_proxy
  • ftp_proxy
  • https_proxy

in

  • il mio utente ~/.zshrc
  • di radice /root/.basrc

ora sono in grado di correre pip

  • sul mio account utente
  • sull'account di root

ma non sono in grado di eseguirlo tramite la shell del mio utente usando sudo

sudo pip
sudo: pip: command not found

Cosa c'è che non va qui?

Risposte:


18

Questo perché PATHè diverso quando si esegue consudo . Prova a confrontare:

which pip
env

vs.

sudo which pip
sudo env

Una soluzione sicura è quella di creare un collegamento simbolico a pipin /usr/local/bino even /usr/bin. Se si installa piputilizzando un gestore pacchetti, lo farà automaticamente su diverse (la maggior parte?) Distro.


6
grazie, alias sudo='sudo env PATH=$PATH'risolto il problema.
Patryk,

Ci sono problemi di sicurezza: non devi impostarlo ciecamente in tutti i tuoi ambienti!
20

7
Non sono sicuro che in questa risposta sia stato chiarissimo, ma la soluzione è davvero unln -s /usr/local/bin/<stuff> /usr/bin/<stuff>
JulienD
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.