'Pip' mới nhất không thành công với "yêu cầu setuptools> = 0.8 cho thông tin phân phối"


81

Sử dụng phiên bản (1.5) gần đây của pip, tôi gặp lỗi khi cố gắng cập nhật một số gói. Ví dụ, sudo pip install -U pytzdẫn đến thất bại với:

Wheel installs require setuptools >= 0.8 for dist-info support.
pip's wheel support requires setuptools >= 0.8 for dist-info support.

Tôi không hiểu thông báo này (tôi có setuptools2.1) hoặc phải làm gì với nó.


Thông tin ngoại lệ từ nhật ký cho lỗi này:

Exception information:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 230, in run
    finder = self._build_package_finder(options, index_urls, session)
  File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 185, in _build_package_finder
    session=session,
  File "/Library/Python/2.7/site-packages/pip/index.py", line 50, in __init__
    self.use_wheel = use_wheel
  File "/Library/Python/2.7/site-packages/pip/index.py", line 89, in use_wheel
    raise InstallationError("pip's wheel support requires setuptools >= 0.8 for dist-info support.")
InstallationError: pip's wheel support requires setuptools >= 0.8 for dist-info support.

Câu trả lời:


148

Điều này đã làm việc cho tôi:

sudo pip install setuptools --no-use-wheel --upgrade

Lưu ý đó là cách sử dụng sudo

CẬP NHẬT

Trên window, bạn chỉ cần thực thi pip install setuptools --no-use-wheel --upgradevới tư cách quản trị viên. Trong unix / linux, sudolệnh là để nâng cấp quyền.

CẬP NHẬT

Điều này dường như đã được khắc phục trong 1.5.1.


Rất tiếc, điều đó dường như không giải quyết được hoàn toàn vấn đề của tôi, tôi vẫn đang tiếp tục giải quyết.
Rolandf

Tôi đã phải hoàn nguyên bằng cách sử dụng pip 1.4 ngay bây giờ, sẽ tìm cách khắc phục sau.
Rolandf

Đã làm cho tôi. Không biết tại sao điều này lại xảy ra.
amoe

4
Lưu ý rằng --no-use-wheeltùy chọn được thêm vào chỉ bỏ qua việc sử dụng 'tệp lưu trữ bánh xe' , nhưng nếu không sẽ định dạng chính xác cài đặt giống như một lệnh bỏ qua nó.
orome

1
Đã làm việc cho tôi trên Centos 6. Nói về một thông báo lỗi tóm tắt.
fred

11

Đầu tiên, bạn không bao giờ nên chạy 'sudo pip'.

Nếu có thể, bạn nên sử dụng trình quản lý gói hệ thống của mình vì nó sử dụng chữ ký GPG để đảm bảo bạn không chạy mã độc hại.

Nếu không, hãy thử nâng cấp các công cụ thiết lập:

easy_install -U setuptools

Ngoài ra, hãy thử:

pip install --user <somepackage>

Điều này là tất nhiên cho các gói "toàn cầu". Lý tưởng nhất là bạn nên sử dụng virtualenvs.


6
Nói chung, chạy pip như sudo là một điều sai lầm. Tuy nhiên, đôi khi bạn làm cần phải cài đặt mọi thứ vào hệ thống trăn (như virtualenv, hoặc pip chính nó), và sudo là thích hợp sau đó.
Luke Sneeringer

1
@LukeSneeringer: Tại sao nó "sai". Tôi không nghĩ rằng tôi thực sự có lựa chọn, nếu không có một số cấu hình lại lớn.
orome

1
easy_install -U setuptoolsđá!
madzohan
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.