Le shell racine voit pip mais sudo pip "commande introuvable"


12

J'ai installé python 2.7.8 via makeet make installpuis pip via get-pip . Je dois noter que je travaille derrière un proxy que j'ai configuré via

  • http_proxy
  • ftp_proxy
  • https_proxy

dans

  • mon utilisateur ~/.zshrc
  • les racines /root/.basrc

maintenant je peux courir pip

  • sur mon compte utilisateur
  • sur le compte root

mais je ne peux pas l'exécuter via le shell de mon utilisateur en utilisant sudo

sudo pip
sudo: pip: command not found

Qu'est-ce qui ne va pas ici?

Réponses:


18

Ce sera parce que le PATHest différent lors de l'exécution avecsudo . Essayez de comparer:

which pip
env

contre.

sudo which pip
sudo env

Une solution de contournement sécurisée consiste à créer un lien symbolique vers pipin /usr/local/binou même /usr/bin. Si vous installez à l' pipaide d'un gestionnaire de packages, cela se fera automatiquement sur plusieurs (la plupart?) Distributions.


6
merci, alias sudo='sudo env PATH=$PATH'résolu le problème.
Patryk

Il y a des problèmes de sécurité avec cela - vous ne voulez pas régler cela aveuglément dans tous vos environnements!
l0b0

7
Je ne sais pas si c'était super clair dans cette réponse, mais la solution est en effet unln -s /usr/local/bin/<stuff> /usr/bin/<stuff>
JulienD
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.