Cài đặt Python pip thất bại: lệnh không hợp lệ egg_info


205

Tôi thấy rằng gần đây thường khi tôi cố gắng cài đặt gói Python bằng pip , tôi gặp lỗi bên dưới.

Tôi đã tìm thấy một tài liệu tham khảo trực tuyến rằng người ta phải sử dụng " python2 setup.py install " từ thư mục tải xuống và thực sự thấy rằng nó sẽ hoạt động nếu tôi tự tìm và tải xuống gói (từ pypi).

Nhưng, tôi không biết pip đang tải các gói đến đâu và / hoặc tại sao nó lại thất bại theo cách này.

Tôi đã thử thực hiện nâng cấp pip, nhưng nó cũng thất bại theo cách tương tự, với một loạt lỗi "Tùy chọn phân phối không xác định" (entry_point, zip_safe, test_suite, tests_Vquire)!

Cố gắng sử dụng pypm của ActiveState không thành công, vì chúng có cơ sở thư viện nhỏ hơn và không bao gồm các gói này.

C:\test>pip install requests-oauth
Downloading/unpacking requests-oauth
  Downloading requests-oauth-0.4.1.tar.gz
  Running setup.py egg_info for package requests-oauth
    E:\Plang\ActivePython\lib\distutils\dist.py:267: UserWarning: Unknown distribution option: 'zip_safe'
      warnings.warn(msg)
    E:\Plang\ActivePython\lib\distutils\dist.py:267: UserWarning: Unknown distribution option: 'install_requires'
      warnings.warn(msg)
    usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
       or: -c --help [cmd1 cmd2 ...]
       or: -c --help-commands
       or: -c cmd --help

    error: invalid command 'egg_info'
    Complete output from command python setup.py egg_info:
    E:\Plang\ActivePython\lib\distutils\dist.py:267: UserWarning: Unknown distribution option: 'zip_safe'
  warnings.warn(msg)

E:\Plang\ActivePython\lib\distutils\dist.py:267: UserWarning: Unknown distribution option: 'install_requires'
  warnings.warn(msg)

usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: -c --help [cmd1 cmd2 ...]
   or: -c --help-commands
   or: -c cmd --help

error: invalid command 'egg_info'

Đối với tôi nó đã hoạt động cài đặtpython-dev
lmaooooo

Câu trả lời:


313

Cài đặt phân phối , đi kèm egg_info.

Nên đơn giản như pip install Distribute.

Phân phối đã được sáp nhập vào Setuptools kể từ phiên bản 0.7. Nếu bạn đang sử dụng phiên bản <= 0.6, hãy nâng cấp bằng pip install --upgrade setuptoolshoặc easy_install -U setuptools.


79
không làm việc cho tôi. Tôi đã phân phối cài đặt, nhưng vẫn gặp lỗi thông tin trứng gần như mỗi lần tôi cố gắng cài đặt gói
Riot Goes Wagger

2
Đối với những người như @Zorpix vẫn gặp lỗi, bạn có thể muốn kiểm tra phiên bản pip nào bạn đang gọi. Trên Ubuntu tôi thấy rằng tôi có một phiên bản đóng gói distro vẫn đang được gọi.
James Snyder

1
Để phiên bản mới của setuptools hoạt động, bạn cũng có thể phải gỡ cài đặt phân phối bằng tay hoặc bằng cách xóa/usr/local/lib/python2.7/dist-packages/distribute-*
Michael

12
nếu bạn vẫn gặp sự cố sau khi xóa phân phối hoặc pip không nâng cấp setuptools đúng cách, hãy thử easy_install -U setuptoolsĐiều này hiệu quả với tôi.
Kissgyorgy

5
Điều kỳ lạ là, điều này đã sửa lỗi cho tất cả các cài đặt ngoại trừ pip install -U pip .
Cerin

58

Vì phân phối đã được hợp nhất trở lại vào setuptools, hiện tại bạn nên cài đặt / nâng cấp setuptools:

[sudo] pip install --upgrade setuptools

7
Vì một số lý do, tôi đã phải chạy nó hai lần (trong env ảo của tôi, tôi đã phân phối 0.6,49 và setuptools 0,6c11) và sau đó tôi có thể cài đặt phiên bản pip mới nhất mà không gặp vấn đề gì.
glarrain

3
@glarrain nó đã xảy ra với tôi! cảm ơn cho những người đứng đầu lên! lượt đầu tiên được gỡ cài đặt phân phối 0,7 và lần thứ hai được gỡ cài đặt 0,6c11
cuộc không kích

22

Hãy nhớ rằng bạn có thể phải làm pip install --upgrade Distributenếu bạn đã cài đặt nó và bạn pipcó thể được gọi pip2cho Python2 trên một số hệ thống (nó là của tôi).


1
Lưu ý, điều này phải được thực hiện trong chế độ quản trị viên trên Windows để cài đặt Python điển hình. Mặt khác, rất dễ bỏ qua lỗi cài đặt cho Phân phối.
Steven Bluen

13

Tôi đã gặp vấn đề này, cũng như một số vấn đề khác với Brewed Python trên OS X v10.9 (Mavericks).

sudo pip install --upgrade setuptools

không làm việc cho tôi và tôi nghĩ rằng thiết lập phân phối / thiết lập phân phối của tôi đã bị hỏng.

Cuối cùng tôi đã có nó để làm việc bằng cách chạy

sudo easy_install -U setuptools

11

Không có cách nào ở trên hoạt động với tôi trên Ubuntu 12.04 LTS (Pangolin chính xác) và đây là cách tôi sửa nó cuối cùng:

Tải xuống ez_setup.py từ tải xuống setuptools (xem phần "Hướng dẫn cài đặt") sau đó:

$ sudo python ez_setup.py

Tôi hy vọng nó sẽ tiết kiệm thời gian cho ai đó.



8

Trên CentOS 6.5, câu trả lời ngắn từ bản cài đặt sạch là:

yum -y install python-pip pip install -U pip pip install -U setuptools pip install -U setuptools

Bạn không thấy gấp đôi, bạn phải chạy nâng cấp setuptools hai lần. Câu trả lời dài dưới đây:

Cài đặt python-pipgói bằng cách sử dụng yum mang python-setuptoolstheo như một phụ thuộc. Đây là một phiên bản khá cũ và do đó nó thực sự cài đặt distribute (0.6.10). Sau khi cài đặt một trình quản lý gói, chúng tôi thường muốn cập nhật nó, vì vậy chúng tôi làm pip install -U pip. Phiên bản hiện tại của pip đối với tôi là 1.5.6.

Bây giờ chúng ta đi cập nhật setuptools và phiên bản pip này đủ thông minh để biết nó nên loại bỏ phiên bản phân phối cũ trước. Nó thực hiện điều này, nhưng sau đó thay vì cài đặt phiên bản mới nhất của setuptools mà nó cài đặt setuptools (0.6c11).

Tại thời điểm này, tất cả mọi thứ đều bị hỏng do phiên bản setuptools cực kỳ cũ này, nhưng chúng ta thực sự đang ở giữa chừng. Nếu bây giờ chúng ta chạy cùng một lệnh chính xác lần thứ hai, pip install -U setuptoolsphiên bản cũ của setuptools sẽ bị xóa và phiên bản 5.5.1 được cài đặt. Tôi không biết tại sao pip không đưa chúng ta thẳng tới phiên bản mới trong một lần chụp, nhưng đây là điều đang xảy ra và hy vọng nó sẽ giúp người khác thấy điều này và biết rằng bạn sẽ không phát điên.


6

Có vẻ như easy_install mặc định bị hỏng ở vị trí hiện tại của nó:

$ which easy_install /usr/bin/easy_install

Một cách để khắc phục điều này là sử dụng easy_install trong các gói trang web. Ví dụ:

$ sudo python /Library/Python/2.7/site-packages/easy_install.py boto


6

Tôi đã phải đối mặt với cùng một vấn đề và tôi đã thử tất cả các câu trả lời ở trên. Nhưng thật không may, không có ở trên làm việc.

Như một lưu ý, cuối cùng tôi đã giải quyết điều này bằng cách pip uninstall distribute.


3
Điều này đã khắc phục vấn đề cho tôi. Hóa ra tôi đã có một bản phân phối cũ được cài đặt và một phiên bản cài đặt cũ hơn được cài đặt và được ưa thích hơn các công cụ thiết lập mới hơn được cài đặt bởi trình đóng gói hệ thống của tôi ... Gỡ cài đặt cả setuptools và phân phối, sau đó cài đặt lại setuptools bằng trình đóng gói hệ thống của tôi khắc phục sự cố cho tôi
Dominic LoBue

5

Tôi biết đây là một câu hỏi cũ hơn nhưng đây là các bước tôi đã sử dụng cassandra-driverđể thực sự cài đặt trên Windows 7 / Python2. Tôi có windows 10 / Python3 ở nhà, nơi tôi sẽ kiểm tra tối nay. Tôi đã xác nhận điều này cũng hoạt động trên Windows 10 với cả Python 2 và 3.

Vấn đề

Command "python setup.py egg_info" failed with error code 1 in c:\users\Frito\appdata\local\temp\pip-build-7dgmdc\cassandra-driver

Giải pháp TL;

Giải pháp (Tôi muốn ai đó giải thích lý do tại sao điều này hoạt động)

  • Đã thử pip install cassandra-drivervà nhận được thông báo lỗi ở trên
  • Đã thử pip install --pre cassandra-drivervà gặp lỗi sau
distutils.errors.DistutilsError: Setup script exited with error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat).
Get it from http://aka.ms/vcpython27

Command "c:\users\Frito\.virtualenvs\symdash\scripts\python.exe -u -c "import setuptools, tokenize;__file__='c:\\users\\Frito\\appdata\\local\\temp\\pip-build-sesxxu\\cassandra-driver\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record  c:\users\Frito\appdata\local\temp\pip-ujsxsk-record\install-record.txt --single-version-externally-managed --compile --install-headers c:\users\Frito\.virtualenvs\symdash\include\site\python2.7\cassandra-driver"  failed with error code 1 in  c:\users\Frito\appdata\local\temp\pip-build-sesxxu\cassandra-driver
  • Cài đặt Microsoft Visual C++ Compiler for Python 2.7
  • Thực hiện thành công pip install --pre cassandra-driver
  • Thực hiện thành công pip uninstall cassandra-driver
  • Thực hiện thành công pip install cassandra-driver

Để nhắc lại, tôi không thực sự chắc chắn tại sao điều này làm việc. Ngay bây giờ hai kết luận hàng đầu của tôi là trình biên dịch C ++ là bắt buộc hoặc chạy --pretùy chọn lần đầu tiên đã cài đặt một số phụ thuộc bị thiếu trong cài đặt 'thông thường'. Tôi sẽ cập nhật tối nay sau khi làm việc khi tôi có thêm chi tiết.


1

pip install -U setuptoolseasy_installđã đưa thông tin trứng vào thư mục sai.

Sau đó tôi mới cài đặt lại apt-get install python-dev. Hãy để tôi cài đặt trình điều khiển tôi muốn sau đó



0

Tôi chỉ chuyển đổi câu trả lời của liquidki thành các lệnh Ubuntu. Trên hệ thống dựa trên Ubuntu, nó hoạt động!:

sudo apt -y install python-pip
pip install -U pip
sudo pip install -U setuptools

0

Đối với tôi, việc nâng cấp pip từ 8.1.1 lên 9.0.1 đã giải quyết vấn đề này.

Bạn có thể chạy một cái gì đó như sudo -H pip2 install --upgrade pipđể nâng cấp phiên bản pip của bạn.


0

Tôi cũng gặp một thông báo lỗi tương tự "Lệnh 'python setup.py egg_info' không thành công với mã lỗi 1" khi tôi muốn cài đặt cairosvg bằng lệnh pip install cairosvgtrong môi trường ảo.

Sau đó tôi đã thử cả hai pip install --upgrade pippip install --upgrade setuptoolstrước khi chạy pip3 install cairosvg, nhưng tôi vẫn gặp lỗi này.

Tôi có thể thoát khỏi lỗi này với sudo trước lệnh cài đặt : sudo pip install cairosvg. Nhưng lưu ý rằng lệnh với sudo sẽ cài đặt gói cho python hệ thống chứ không phải môi trường ảo.

Vì vậy, tôi tiếp tục kiểm tra thông báo lỗi và thấy rằng tôi gặp lỗi trong khi cài đặt cairocffi . Sau đó, tôi cài đặt một phiên bản cairocffi nhất định ( tham khảo câu trả lời này ) trước khi cài đặt cairosvg. Đó là cách tôi giải quyết vấn đề của mình.

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.