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?

Patryk
la source

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.

l0b0
la source
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