Root shell nhìn thấy pip nhưng không tìm thấy lệnh sudo pip.


12

Tôi đã cài đặt python 2.7.8 qua makemake installrồi pip qua get-pip . Tôi phải lưu ý rằng tôi làm việc đằng sau một proxy mà tôi đã thiết lập thông qua

  • http_proxy
  • ftp_proxy
  • https_proxy

trong

  • người dùng của tôi ~/.zshrc
  • rễ /root/.basrc

bây giờ tôi có thể chạy pip

  • trên tài khoản người dùng của tôi
  • trên tài khoản root

nhưng tôi không thể chạy nó qua trình bao của người dùng bằng sudo

sudo pip
sudo: pip: command not found

Có chuyện gì ở đây vậy?

Câu trả lời:


18

Đó sẽ là vì sự PATHkhác biệt khi chạy vớisudo . Hãy thử so sánh:

which pip
env

so với

sudo which pip
sudo env

Một cách giải quyết an toàn là tạo một liên kết tượng trưng đến piptrong /usr/local/binhoặc thậm chí /usr/bin. Nếu bạn cài đặt pipbằng trình quản lý gói, nó sẽ tự động thực hiện trên một số bản phát hành (hầu hết?).


6
cảm ơn, đã alias sudo='sudo env PATH=$PATH'giải quyết vấn đề
Patryk

Có vấn đề bảo mật với điều đó - bạn không muốn đặt điều này một cách mù quáng trong tất cả các môi trường của bạn!
l0b0

7
Tôi không chắc liệu nó có siêu rõ ràng trong câu trả lời này không, nhưng giải pháp thực sự làln -s /usr/local/bin/<stuff> /usr/bin/<stuff>
JulienD
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.