O shell raiz vê o pip, mas o sudo pip “comando não encontrado”

12

Eu tenho instalado python 2.7.8 via makee make installem seguida pip via get-pip . Devo observar que trabalho atrás de um proxy que configurei via

  • http_proxy
  • ftp_proxy
  • https_proxy

dentro

  • meu usuário ~/.zshrc
  • raiz /root/.basrc

agora eu sou capaz de correr pip

  • na minha conta de usuário
  • na conta raiz

mas não consigo executá-lo através do shell do meu usuário usando o sudo

sudo pip
sudo: pip: command not found

O que há de errado aqui?

Patryk
fonte

Respostas:

18

Isso acontece porque o PATHé diferente ao executar comsudo . Tente comparar:

which pip
env

vs.

sudo which pip
sudo env

Uma solução alternativa segura é criar um link simbólico para pipin /usr/local/binou even /usr/bin. Se você instalar pipusando um gerenciador de pacotes, isso será feito automaticamente em várias (a maioria?) Distros.

l0b0
fonte
6
obrigado, alias sudo='sudo env PATH=$PATH'resolveu o problema.
Patryk
Existem problemas de segurança com isso - você não deseja definir isso às cegas em todos os seus ambientes!
precisa saber é o seguinte
7
Eu não tenho certeza se ele foi super claro nesta resposta, mas a solução é realmente umln -s /usr/local/bin/<stuff> /usr/bin/<stuff>
JulienD