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
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
.
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
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"
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
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
Hmm, nó nói: "không có lựa chọn như: -E" – lizarisk
@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õ –