Instalasi pip Python gagal: perintah egg_info tidak valid

205

Saya menemukan bahwa baru-baru ini sering ketika saya mencoba menginstal paket Python menggunakan pip , saya mendapatkan kesalahan (s) di bawah ini.

Saya menemukan referensi online bahwa seseorang harus menggunakan " python2 setup.py install " dari direktori unduh, dan memang menemukan bahwa ini akan berfungsi jika saya secara manual menemukan dan mengunduh paket (dari pypi).

Tapi, saya tidak tahu ke mana pip mengunduh paket, dan / atau mengapa gagal dengan cara ini.

Saya mencoba melakukan upgrade pip, tetapi juga gagal dengan cara yang sama, dengan banyak kesalahan "Opsi distribusi tidak diketahui" (entry_points, zip_safe, test_suite, test_require)!

Mencoba menggunakan pypm ActiveState gagal, karena mereka memiliki basis pustaka yang lebih kecil, dan itu tidak termasuk paket-paket ini.

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'
guthrie
sumber
Bagi saya itu berhasil menginstalpython-dev
lmaooooo

Jawaban:

313

Instal mendistribusikan , yang datang dengan egg_info.

Seharusnya sesederhana itu pip install Distribute.

Mendistribusikan telah bergabung ke Setuptools pada versi 0.7. Jika Anda menggunakan versi <= 0.6, tingkatkan versi menggunakan pip install --upgrade setuptoolsatau easy_install -U setuptools.

Randall Ma
sumber
79
tidak bekerja untuk saya. Saya telah mendistribusikan diinstal, tetapi masih mendapatkan kesalahan info telur hampir setiap kali saya mencoba untuk menginstal paket
Riot Goes Woof
2
Bagi mereka yang suka @Zorpix yang masih mendapatkan kesalahan, Anda mungkin ingin memeriksa versi pip yang Anda panggil. Di Ubuntu saya menemukan bahwa saya memiliki versi distro-paket yang masih dipanggil.
James Snyder
1
Agar setuptools versi baru berfungsi, Anda mungkin juga harus menghapus instalan distribusi dengan tangan atau dengan menghapus/usr/local/lib/python2.7/dist-packages/distribute-*
Michael
12
jika Anda masih memiliki masalah setelah menghapus distribusi atau pip tidak memutakhirkan setuptools dengan benar, coba easy_install -U setuptoolsini bekerja untuk saya.
kissgyorgy
5
Anehnya, ini memperbaiki kesalahan untuk semua instalasi kecuali pip install -U pip .
Cerin
58

Karena distribusi telah digabungkan kembali ke dalam setuptools, sekarang disarankan untuk menginstal / memutakhirkan setuptools sebagai gantinya:

[sudo] pip install --upgrade setuptools
Gringo Suave
sumber
7
Untuk beberapa alasan saya harus menjalankan ini dua kali (dalam env virtual saya, saya telah mendistribusikan 0.6.49 dan setuptools 0.6c11) dan kemudian saya dapat menginstal versi terbaru dari pip tanpa masalah.
glarrain
3
@ tuanrain itu terjadi pada saya untuk! terimakasih atas peringatannya! pass pertama dihapus instalasikan 0,7, dan setuptools kedua dihapus 0,6c11
serangan udara
22

Ingatlah bahwa Anda mungkin harus melakukan pip install --upgrade Distributejika Anda sudah menginstalnya dan Anda pipmungkin dipanggil pip2untuk Python2 pada beberapa sistem (ada di tambang).

Naypam
sumber
1
Sebagai catatan, ini harus dilakukan dalam mode administrator pada Windows untuk instalasi Python yang khas. Kalau tidak, mudah untuk mengabaikan kegagalan instalasi untuk Mendistribusikan.
Steven Bluen
13

Saya punya masalah ini, serta beberapa masalah lain dengan Brewed Python di OS X v10.9 (Mavericks).

sudo pip install --upgrade setuptools

tidak bekerja untuk saya, dan saya pikir setuptools saya / mendistribusikan setup gagal.

Saya akhirnya berhasil bekerja dengan berlari

sudo easy_install -U setuptools
Ian weisberger
sumber
11

Tidak ada yang di atas bekerja untuk saya di Ubuntu 12,04 LTS (Precise Pangolin), dan inilah cara saya memperbaikinya pada akhirnya:

Unduh ez_setup.py dari unduhan setuptools (lihat bagian "Petunjuk Instalasi") lalu:

$ sudo python ez_setup.py

Saya harap ini menghemat waktu seseorang.

pengguna3637041
sumber
9

Kesalahan ini dapat terjadi ketika Anda mencoba menginstal pycurl.

Dalam hal ini yang harus Anda lakukan

sudo apt-get install libcurl4-gnutls-dev librtmp-dev

(didirikan di sini: https://gist.github.com/lxneng/1031014 )

Sergei Panfilov
sumber
8

Pada CentOS 6.5, jawaban singkat dari instalasi bersih adalah:

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

Anda tidak melihat dua kali lipat, Anda harus menjalankan upgrade setuptools dua kali. Jawaban panjangnya di bawah:

Menginstal python-pippaket menggunakan yum membawa python-setuptoolsserta ketergantungan. Ini adalah versi yang cukup lama dan karenanya benar-benar menginstal distribute (0.6.10). Setelah menginstal manajer paket, kami biasanya ingin memperbaruinya, jadi kami lakukan pip install -U pip. Versi pip terbaru untuk saya adalah 1.5.6.

Sekarang kita pergi untuk memperbarui setuptools dan versi pip ini cukup pintar untuk mengetahui itu harus menghapus versi lama dari distribusi terlebih dahulu. Itu melakukan ini, tetapi kemudian bukannya menginstal versi terbaru dari setuptools menginstalnya setuptools (0.6c11).

Pada titik ini semua hal rusak karena versi setuptools yang sangat lama ini, tapi kami sebenarnya setengah jalan di sana. Jika sekarang kita menjalankan perintah yang sama persis untuk kedua kalinya, pip install -U setuptoolsversi lama dari setuptools dihapus, dan versi 5.5.1 diinstal. Saya tidak tahu mengapa pip tidak membawa kami langsung ke versi baru dalam satu kesempatan, tetapi inilah yang terjadi dan mudah-mudahan ini akan membantu orang lain untuk melihat ini dan tahu Anda tidak menjadi gila.

liquidki
sumber
6

Sepertinya easy_install default rusak di lokasi saat ini:

$ which easy_install /usr/bin/easy_install

Cara untuk mengatasinya adalah dengan menggunakan easy_install dalam paket situs. Sebagai contoh:

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

johnpaulhayes
sumber
6

Saya menghadapi masalah yang sama dan saya mencoba semua jawaban di atas. Namun sayangnya, tidak satu pun di atas yang berfungsi.

Sebagai catatan, saya akhirnya menyelesaikan ini dengan pip uninstall distribute.

Lagu Yin
sumber
3
Ini memperbaiki masalah bagi saya. Ternyata saya telah menginstal verison lama dari distribusi, dan versi yang lebih lama dari setuptools diinstal dan lebih disukai daripada setuptools baru yang diinstal oleh paket sistem saya ... Menghapus instalasi kedua setuptools dan mendistribusikan, dan kemudian menginstal ulang setuptools menggunakan packager sistem saya memperbaiki masalah untuk saya.
Dominic LoBue
5

Saya tahu ini adalah pertanyaan yang lebih lama tetapi ini adalah langkah-langkah yang saya gunakan untuk cassandra-drivermenginstal di Windows 7 / Python2. Saya memiliki windows 10 / Python3 di rumah di mana saya akan menguji ini malam ini. Saya telah mengkonfirmasi ini juga berfungsi pada Windows 10 dengan Python 2 dan 3.

Masalah

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

TL; Solusi DR

Solusi (Saya ingin seseorang menjelaskan mengapa ini berhasil)

  • Mencoba pip install cassandra-driverdan mendapatkan pesan kesalahan di atas
  • Mencoba pip install --pre cassandra-driverdan mendapatkan kesalahan berikut
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
  • Diinstal Microsoft Visual C++ Compiler for Python 2.7
  • Berhasil dieksekusi pip install --pre cassandra-driver
  • Berhasil dieksekusi pip uninstall cassandra-driver
  • Berhasil dieksekusi pip install cassandra-driver

Untuk mengulangi, saya tidak begitu yakin mengapa ini berhasil. Saat ini dua kesimpulan utama saya adalah bahwa baik kompiler C ++ diperlukan atau yang menjalankan --preopsi saat pertama kali menginstal beberapa dependensi yang hilang dari instalasi 'biasa'. Saya akan memperbarui malam ini setelah bekerja ketika saya memiliki rincian lebih lanjut.

Frito
sumber
1

pip install -U setuptoolsdan easy_installmeletakkan info telur di direktori yang salah.

Lalu saya baru diinstal ulang apt-get install python-dev. Biarkan saya menginstal driver yang saya inginkan setelah itu

shanwar
sumber
1

coba perintah berikut:

pip install setuptools==28.8.0
vp9031
sumber
0

Saya hanya mengubah jawaban liquidki menjadi perintah Ubuntu. Pada sistem berbasis Ubuntu ia bekerja !:

sudo apt -y install python-pip
pip install -U pip
sudo pip install -U setuptools
efkan
sumber
0

Bagi saya meningkatkan pip dari 8.1.1 ke 9.0.1 menyelesaikan masalah ini.

Anda dapat menjalankan sesuatu seperti sudo -H pip2 install --upgrade pipmeningkatkan versi pip Anda.

Qin Heyang
sumber
0

Saya juga menemui pesan kesalahan serupa "Perintah 'python setup.py egg_info' gagal dengan kode kesalahan 1" ketika saya ingin menginstal cairosvg dengan perintah pip install cairosvgdi lingkungan virtual.

Kemudian saya sudah mencoba keduanya pip install --upgrade pipdan pip install --upgrade setuptoolssebelum menjalankan pip3 install cairosvg, tetapi saya masih mendapatkan kesalahan ini.

Aku bisa menyingkirkan kesalahan ini dengan sudo di depan perintah instalasi: sudo pip install cairosvg. Tetapi perhatikan bahwa perintah dengan sudo akan menginstal paket untuk sistem python daripada lingkungan virtual.

Jadi, saya selanjutnya memeriksa pesan kesalahan dan menemukan bahwa saya mendapatkan kesalahan saat menginstal cairocffi . Kemudian saya menginstal versi cairocffi tertentu ( lihat jawaban ini ) sebelum menginstal cairosvg. Itulah cara saya memecahkan masalah saya.

liushan CHEN
sumber