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?

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?).


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.