2015-08-15 16 views
19

Tôi sử dụng CentOS và tôi đã cài đặt pip đến /usr/local/python-dir/bin/pip. Tôi đã tạo liên kết đến /usr/local/bin/pip. Sau đó, tôi thực hiện sudo pip install xxx, nó báo lỗi như thế này:sudo: pip: lệnh không tìm thấy trong CentOS

sudo: pip: command not found 

tôi thấy $PATH là tất cả phải:

/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin 

Tuy nhiên, tôi chỉ có thể thực hiện pip theo cách này:

sudo /usr/local/bin/pip install xxx 

Làm thế nào tôi có thể cấu hình PATH hoặc cái gì khác? Cảm ơn rất nhiều.

+0

Liên kết có hoạt động nếu bạn thử chạy không có 'sudo' không? Cấp, bạn có thể sẽ không được phép cài đặt, nhưng nó có cố chạy 'pip' theo cách đó không? –

Trả lời

42

Vì lý do bảo mật, sudo không dựa trên số $PATH được đặt trong môi trường của bạn. Có một tùy chọn secure_path trong /etc/sudoers chỉ định PATH rằng sudo sẽ sử dụng để định vị tệp nhị phân. Ví dụ:

Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin 

Chỉ cần thêm /usr/local/bin vào PATH này, hoặc được sử dụng để gõ:

sudo `which pip` install xxx 
+0

Cảm ơn nhiều ..... Đây là những gì tôi đã tìm kiếm khắp nơi! – Deca

+1

Tôi tin rằng bạn phải chỉnh sửa tệp bằng visudo: sudo visudo; nhấn phím insert, cuộn xuống và thực hiện thay đổi, nhấn phím esc, sau đó ': qw' để lưu tệp và thoát. Điều đó làm việc cho tôi. – eezis

+0

tôi đồng ý hơn với câu trả lời của @Paul Kenjora, 'sudo ln -s/usr/local/bin/pip/usr/bin/pip' – Pramit

-1

Bạn có thể thêm tùy chọn -E để sudo để sử dụng các biến môi trường của tài khoản người dùng của bạn

$ sudo -E pip install xyz

+1

điều này không thể làm việc cho tôi. – zimmer

+0

Đã không hoạt động trên Ubuntu. –

3

Hãy thử sudo bash -c 'echo $PATH' để xem nơi sudo đang tìm kiếm lệnh; sau đó bạn có thể liên kết tượng trưng pip vào một trong các thư mục đó.

+0

Đây là một cách khác để giải quyết vấn đề của tôi, tôi thêm/usr/local/bin vào secure_path, nó cũng hoạt động, nhờ – zimmer

+7

'$ sudo ln -s/usr/local/bin/pip/usr/bin/pip' là cách tôi đạt được nó. – MikeiLL

+0

@MikeiLL, cảm ơn.Đối với những gì nó có giá trị, tôi thay vì tìm thấy 'usr/local/bin/pip3.4' trên máy tính của tôi. – progfan

3

Không lý tưởng nhưng hoạt động. Bạn luôn có thể hủy liên kết sau khi cài đặt để khôi phục bảo mật.

sudo ln -s/usr/local/bin/pip/bin/pip

Đặt pip trong bin đường dẫn gốc. Sau đó bạn có thể chạy pip như sudo.

0

pip có thể được cài đặt với lệnh dưới đây:

yum -y install python-pip

Nếu bạn phải đối mặt với bất kỳ vấn đề với phím GPG (không có tập tin hoặc thư mục đó), sau đó kích hoạt bên dưới lệnh:

rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6 

sau đó thử cài đặt pip

Các vấn đề liên quan