การติดตั้ง Python ล้มเหลว: คำสั่งไม่ถูกต้อง egg_info


205

ฉันพบว่าเมื่อเร็ว ๆ นี้เมื่อฉันพยายามติดตั้งแพ็กเกจPythonโดยใช้pipฉันได้รับข้อผิดพลาดด้านล่าง

ฉันพบข้อมูลอ้างอิงออนไลน์ที่มีการใช้ " python2 setup.py install " จากไดเรกทอรีดาวน์โหลดและแน่นอนพบว่าสิ่งนี้จะได้ผลถ้าฉันค้นหาและดาวน์โหลดแพ็คเกจ (จาก pypi) ด้วยตนเอง

แต่ฉันไม่รู้ว่า pip กำลังดาวน์โหลดแพ็คเกจอยู่ที่ไหนและ / หรือทำไมมันจึงล้มเหลวในลักษณะนี้

ฉันพยายามทำการอัพเกรด pip แต่มันก็ล้มเหลวในทำนองเดียวกันโดยมีข้อผิดพลาด "ไม่รู้จักตัวเลือกการแจกจ่าย" (รายการ entry_points, zip_safe, test_suite, tests_require)!

การพยายามใช้ pypm ของ ActiveState ล้มเหลวเนื่องจากมีฐานห้องสมุดที่เล็กกว่าและไม่มีแพ็คเกจเหล่านี้

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'

สำหรับฉันมันทำงานติดตั้งpython-dev
lmaooooo

คำตอบ:


313

ติดตั้งจำหน่ายegg_infoซึ่งมาพร้อมกับ

pip install Distributeควรจะเป็นง่ายๆเป็น

การแจกจ่ายได้รับการรวมเข้าไปใน Setuptools ตั้งแต่เวอร์ชัน 0.7 หากคุณกำลังใช้รุ่น <= 0.6, อัพเกรดใช้หรือpip install --upgrade setuptoolseasy_install -U setuptools


79
ใช้งานไม่ได้สำหรับฉัน ฉันแจกจ่ายติดตั้งแล้ว แต่ยังพบข้อผิดพลาดของข้อมูลไข่เกือบทุกครั้งที่ฉันพยายามติดตั้งแพ็คเกจ
Riot Goes Woof

2
สำหรับผู้ที่ต้องการ @Zorpix ที่ยังคงได้รับข้อผิดพลาดคุณอาจต้องการตรวจสอบ pip ที่คุณโทรหา บน Ubuntu ฉันพบว่าฉันมีรุ่น distro-packaged ที่ยังถูกเรียกใช้อยู่
James Snyder

1
เพื่อให้ setuptools เวอร์ชันใหม่ทำงานคุณอาจต้องถอนการติดตั้งการแจกจ่ายด้วยตนเองหรือโดยการลบ/usr/local/lib/python2.7/dist-packages/distribute-*
Michael

12
หากคุณยังคงมีปัญหาหลังจากลบการแจกจ่ายหรือ pip ไม่อัปเกรด setuptools อย่างถูกต้องลองใช้easy_install -U setuptoolsวิธีนี้ได้ผลสำหรับฉัน
kissgyorgy

5
ผิดปกตินี้ได้รับการแก้ไขข้อผิดพลาดสำหรับการติดตั้งทั้งหมดยกเว้น pip install -U pip
Cerin

58

เมื่อการแจกจ่ายถูกรวมกลับเข้าไปใน setuptools ตอนนี้เราขอแนะนำให้ติดตั้ง / อัปเกรด setuptools แทน:

[sudo] pip install --upgrade setuptools

7
ด้วยเหตุผลบางอย่างฉันต้องเรียกใช้สองครั้ง (ใน env เสมือนจริงของฉันฉันได้แจกจ่าย 0.6.49 และ setuptools 0.6c11) แล้วฉันสามารถติดตั้ง pip รุ่นล่าสุดได้โดยไม่มีปัญหา
glarrain

3
@glarrain มันเกิดขึ้นกับฉัน! ขอบคุณสำหรับหัวขึ้น! การถอนการติดตั้งครั้งแรกผ่านการแจกจ่าย 0.7 และการถอนการติดตั้ง setuptools ครั้งที่สองที่ 0.6c11
airstrike

22

จำไว้ว่าคุณอาจต้องทำpip install --upgrade Distributeถ้าติดตั้งไว้แล้วและคุณpipอาจถูกเรียกpip2ใช้ Python2 ในบางระบบ (เป็นของฉัน)


1
โปรดทราบว่าสิ่งนี้จะต้องทำในโหมดผู้ดูแลระบบบน Windows สำหรับการติดตั้ง Python ทั่วไป มิฉะนั้นจะง่ายต่อการมองข้ามความล้มเหลวในการติดตั้งสำหรับการแจกจ่าย
Steven Bluen

13

ฉันมีปัญหานี้เช่นเดียวกับปัญหาอื่น ๆ กับ Brewed Python ในOS X v10.9 (Mavericks)

sudo pip install --upgrade setuptools

ไม่ทำงานสำหรับฉันและฉันคิดว่า setuptools / การตั้งค่าการกระจายของฉันไม่เรียบร้อย

ในที่สุดฉันก็สามารถทำงานได้

sudo easy_install -U setuptools

11

สิ่งที่กล่าวมาข้างต้นไม่ได้ผลสำหรับฉันบนUbuntu 12.04 LTS (แม่นยำ Pangolin) และนี่คือวิธีที่ฉันจะแก้ไขในตอนท้าย:

ดาวน์โหลดez_setup.pyจากการดาวน์โหลด setuptools (ดูหัวข้อ "คำแนะนำในการติดตั้ง") จากนั้น:

$ sudo python ez_setup.py

ฉันหวังว่ามันจะช่วยให้ใครบางคนได้เวลา



8

บน CentOS 6.5 คำตอบสั้น ๆ จากการติดตั้งแบบคลีนคือ:

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

คุณไม่เห็นสองครั้งคุณต้องเรียกใช้ setuptools อัปเกรดสองครั้ง คำตอบที่ยาวอยู่ด้านล่าง:

การติดตั้งpython-pipแพคเกจโดยใช้ yum จะทำให้python-setuptoolsคุณได้พึ่งพาได้ distribute (0.6.10)มันเป็นรุ่นเก่าสวยและด้วยเหตุนี้มันจริงติดตั้ง pip install -U pipหลังจากติดตั้งแพคเกจผู้จัดการทั่วไปที่เราต้องการที่จะปรับปรุงมันเพื่อให้เราทำ pip ปัจจุบันสำหรับฉันคือ 1.5.6

ตอนนี้เราไปอัปเดต setuptools และ pip ​​รุ่นนี้ฉลาดพอที่จะรู้ว่ามันควรลบการแจกจ่ายรุ่นเก่าออกก่อน มันเป็นเช่นนี้ แต่แล้วแทนการติดตั้งรุ่นล่าสุดของ setuptools setuptools (0.6c11)จะติดตั้ง

ณ จุดนี้สิ่งต่าง ๆ ทุกอย่างถูกทำลายเนื่องจาก setuptools รุ่นเก่ามากนี้ แต่จริง ๆ แล้วเราอยู่ตรงนั้นครึ่งทางแล้ว ถ้าตอนนี้เรารันคำสั่งเดียวกันที่แน่นอนเป็นครั้งที่สองpip install -U setuptoolssetuptools เวอร์ชันเก่าจะถูกลบและติดตั้งเวอร์ชั่น 5.5.1 ฉันไม่รู้ว่าทำไม pip ไม่พาเราตรงไปที่เวอร์ชันใหม่ในนัดเดียว แต่นี่คือสิ่งที่เกิดขึ้นและหวังว่ามันจะช่วยให้ผู้อื่นเห็นสิ่งนี้และรู้ว่าคุณไม่บ้า


6

ดูเหมือนว่า easy_install เริ่มต้นจะเสียในตำแหน่งปัจจุบัน:

$ which easy_install /usr/bin/easy_install

วิธีที่จะเอาชนะสิ่งนี้คือการใช้ easy_install ในแพ็คเกจของไซต์ ตัวอย่างเช่น:

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


6

ฉันกำลังเผชิญปัญหาเดียวกันและฉันพยายามตอบทั้งหมดข้างต้น แต่น่าเสียดายที่ไม่มีการทำงานใด ๆ ข้างต้น

pip uninstall distributeเป็นบันทึกในที่สุดผมก็แก้ปัญหานี้โดย


3
ปัญหานี้ได้รับการแก้ไขสำหรับฉัน กลับกลายเป็นว่าฉันติดตั้งรุ่นเก่าแล้วและติดตั้ง setuptools รุ่นเก่ากว่าและเป็นที่ต้องการมากกว่า setuptools รุ่นใหม่ที่ติดตั้งโดยตัวจัดระบบของฉัน ... ถอนการติดตั้ง setuptools ทั้งสองและแจกจ่าย แก้ไขปัญหาให้ฉัน
Dominic LoBue

5

ฉันรู้ว่านี่เป็นคำถามที่เก่ากว่า แต่นี่คือขั้นตอนที่ฉันใช้เพื่อcassandra-driverติดตั้งบน Windows 7 / Python2 ฉันมี windows 10 / Python3 ที่บ้านที่ฉันจะทดสอบคืนนี้ ฉันได้รับการยืนยันว่าสามารถใช้งานได้กับ Windows 10 ทั้ง Python 2 และ 3

ปัญหา

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

TL; DR Solution

วิธีแก้ปัญหา (ฉันชอบให้ใครบางคนอธิบายว่าทำไมสิ่งนี้ถึงใช้ได้)

  • พยายามpip install cassandra-driverและได้รับข้อความแสดงข้อผิดพลาดด้านบน
  • พยายามpip install --pre cassandra-driverและได้รับข้อผิดพลาดดังต่อไปนี้
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
  • การติดตั้ง Microsoft Visual C++ Compiler for Python 2.7
  • ดำเนินการสำเร็จ pip install --pre cassandra-driver
  • ดำเนินการสำเร็จ pip uninstall cassandra-driver
  • ดำเนินการสำเร็จ pip install cassandra-driver

เพื่อย้ำอีกครั้งฉันไม่แน่ใจว่าทำไมสิ่งนี้ถึงได้ผล ตอนนี้ข้อสรุปสำคัญสองข้อของฉันคือต้องใช้คอมไพเลอร์ C ++ หรือเรียกใช้--preตัวเลือกในครั้งแรกที่ติดตั้งการอ้างอิงบางอย่างที่หายไปจากการติดตั้ง 'ปกติ' ฉันจะอัปเดตคืนนี้หลังเลิกงานเมื่อฉันมีรายละเอียดเพิ่มเติม


1

pip install -U setuptoolsและeasy_installวางข้อมูลไข่ลงในสารบบที่ผิด

apt-get install python-devจากนั้นฉันเพิ่งติดตั้งใหม่ ให้ฉันติดตั้งไดรเวอร์ที่ฉันต้องการหลังจากนั้น



0

ฉันเพิ่งแปลงคำตอบของ liquidki เป็นคำสั่งของ Ubuntu บนระบบที่ใช้งานบน Ubuntu มันใช้งานได้:

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

0

สำหรับฉันอัพเกรด pip จาก 8.1.1 เป็น 9.0.1 แก้ปัญหานี้

คุณสามารถเรียกใช้สิ่งที่ต้องการsudo -H pip2 install --upgrade pipอัพเกรดเวอร์ชั่น pip ของคุณ


0

ฉันยังพบข้อความแสดงข้อผิดพลาดที่คล้ายกัน "Command 'python setup.py egg_info' ล้มเหลวด้วยรหัสข้อผิดพลาด 1" เมื่อฉันต้องการติดตั้งcairosvgพร้อมคำสั่งpip install cairosvgในสภาพแวดล้อมเสมือน

จากนั้นฉันได้ลองทั้งสองpip install --upgrade pipและpip install --upgrade setuptoolsก่อนทำงานpip3 install cairosvgแต่ฉันยังคงได้รับข้อผิดพลาดนี้

ฉันสามารถกำจัดข้อผิดพลาดนี้ด้วยsudosudo pip install cairosvgในด้านหน้าของคำสั่งติดตั้ง: แต่โปรดทราบว่าคำสั่งที่มีsudoจะติดตั้งแพ็กเกจสำหรับ python ของระบบมากกว่าสภาพแวดล้อมเสมือน

ดังนั้นผมต่อไปตรวจสอบข้อผิดพลาดและพบว่าฉันได้รับข้อผิดพลาดในขณะที่การติดตั้งcairocffi จากนั้นฉันติดตั้ง cairocffi รุ่นที่แน่นอน ( ดูคำตอบนี้ ) ก่อนการติดตั้ง cairosvg นั่นคือวิธีที่ฉันแก้ปัญหาของฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.