2013-03-19 19 views
17

Tôi đang cố cài đặt một số gói bằng pip. Khi tôi thực hiện việc này bằng sudo, lỗi này xảy ra: "Không thể tìm nạp URL cơ sở chỉ mục https://pypi.python.org/simple/". Khi tôi thực hiện lệnh không có sudo, gói tải xuống thành công, nhưng tôi không có đủ quyền. Điều gì có thể là lý do cho hành vi khác nhau như vậy? Tôi đang ngồi sau một proxy.Lỗi pip Python: "Không thể tìm nạp URL cơ sở chỉ mục https://pypi.python.org/simple/"

Trả lời

31

Có thể thử với sudo -E:

-E   The -E (preserve environment) option indicates to the secu‐ 
      rity policy that the user wishes to preserve their existing 
      environment variables. The security policy may return an 
      error if the -E option is specified and the user does not 
      have permission to preserve the environment. 

Trên giả định rằng cài đặt proxy của bạn được thiết lập trong môi trường người dùng bình thường, nhưng không phải là người bạn nhận được khi bạn chạy sudo.

+0

Hmm, nó nói: "không có lựa chọn như: -E" – lizarisk

+3

@lizarisk '-E' là một lựa chọn cho 'sudo', không phải 'pip'. Tôi đã chỉnh sửa để làm rõ –

3

Tôi có vấn đề này khi cố gắng sử dụng pip==1.5.4

Đây là vấn đề liên quan đến PIP và PYPI Python của tin tưởng chứng chỉ SSL. Nếu bạn nhìn vào nhật ký PIP trong Mac OS X tại: /Users/username/.pip/pip.log, nó sẽ cung cấp cho bạn thêm chi tiết.

workaround của tôi để có được PIP sao lưu và chạy sau nhiều giờ cố gắng thứ khác nhau đã đi vào tôi site-packages bằng Python cho dù đó là trong một virtualenv hoặc trong bình thường của bạn site-packages, và loại bỏ phiên bản PIP hiện tại. Đối với tôi, tôi đã có pip==1.5.4

Tôi đã xóa thư mục PIP và tệp trứng PIP. Sau đó, tôi chạy

easy_install pip==1.2.1 

Phiên bản này của PIP không có vấn đề SSL, và sau đó tôi đã có thể đi và chạy bình thường pip install -r requirements.txt của tôi trong vòng virtualenv của tôi để thiết lập tất cả các gói mà tôi muốn mà được liệt kê trong tôi requirements.txt tệp.

này cũng được đề nghị hack để có được thông qua vấn đề này bởi nhiều người trên Google Group này mà tôi tìm thấy:

https://groups.google.com/forum/#!topic/beagleboard/aSlPCNYcVjw

[sửa]

Nếu bạn có một phiên bản khác của PIP được cài đặt trên toàn cầu, mỗi khi bạn tạo một virtualenv mới, nó sẽ cài đặt phiên bản PIP đó, vì vậy bạn sẽ phải thực hiện việc này mỗi lần cho mỗi PIP mới trừ khi bạn thay đổi phiên bản được cài đặt chung. Tôi chạy vào vấn đề này khi bắt đầu một dự án mới, và phải làm việc sửa chữa một lần nữa và quay trở lại pip==1.2.1

2

Từ pip docs, nếu bạn đang cài đặt sau một proxy:

python get-pip.py - -proxy = "[user: passwd @] proxy.server: cổng"

2

Nếu bạn muốn cài đặt bất kỳ gói sử dụng pip sau đó nó được tốt hơn để làm theo bên dưới cú pháp:

sudo pip --proxy=http://username:[email protected]:portNumber install yolk 
0

hei, gays.I đã gặp phải vấn đề này và tìm thấy câu trả lời finall y resolve。Bạn có thể thử làm như thế này: thêm một tập tin mới /root/.pip/pip.conf, sau đó viết:. [global] index-url = http://pypi.douban.com/simple/ trong file

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