Shell root melihat pip tetapi sudo pip “perintah tidak ditemukan”

12

Saya telah menginstal python 2.7.8 via makedan make installkemudian pip melalui get-pip . Saya harus mencatat bahwa saya bekerja di belakang proxy yang telah saya atur melalui

  • http_proxy
  • ftp_proxy
  • https_proxy

di

  • pengguna saya ~/.zshrc
  • akar /root/.basrc

sekarang saya bisa lari pip

  • di akun pengguna saya
  • pada akun root

tapi saya tidak bisa menjalankannya melalui shell pengguna saya menggunakan sudo

sudo pip
sudo: pip: command not found

Apa yang salah di sini?

Patryk
sumber

Jawaban:

18

Itu karena PATHperbedaannya ketika berlari dengansudo . Coba bandingkan:

which pip
env

vs.

sudo which pip
sudo env

Salah satu solusi yang aman adalah membuat tautan simbolis ke pipdalam /usr/local/binatau bahkan /usr/bin. Jika Anda menginstal pipmenggunakan manajer paket itu akan melakukan ini secara otomatis pada beberapa distro (paling?).

l0b0
sumber
6
terima kasih, alias sudo='sudo env PATH=$PATH'pecahkan masalah ini.
Patryk
Ada masalah keamanan dengan itu - Anda tidak ingin membabi buta mengatur ini di semua lingkungan Anda!
l0b0
7
Saya tidak yakin apakah itu sangat jelas dalam jawaban ini, tetapi solusinya memangln -s /usr/local/bin/<stuff> /usr/bin/<stuff>
JulienD