L'installation de Python pip échoue: commande invalide egg_info

205

Je trouve que récemment, souvent, lorsque j'essaie d'installer un package Python à l' aide de pip , j'obtiens les erreurs ci-dessous.

J'ai trouvé une référence en ligne selon laquelle il faut utiliser " python2 setup.py install " dans le répertoire de téléchargement, et en effet, cela fonctionnera si je trouve et télécharge manuellement le package (à partir de pypi).

Mais, je ne sais pas où pip télécharge les packages, et / ou pourquoi il échoue de cette manière.

J'ai essayé de faire une mise à niveau pip, mais elle a également échoué de la même manière, avec un tas d'erreurs "Option de distribution inconnue" (entry_points, zip_safe, test_suite, tests_require)!

Essayer d'utiliser le pypm d'ActiveState échoue, car ils ont une base de bibliothèque plus petite, et il n'inclut pas ces packages.

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
la source
Pour moi, cela a fonctionné en installantpython-dev
lmaooooo

Réponses:

313

Installez distribuer , qui vient avec egg_info.

Devrait être aussi simple que pip install Distribute.

Distribute a été fusionné dans Setuptools à partir de la version 0.7. Si vous utilisez une version <= 0,6, effectuez une mise à niveau à l'aide de pip install --upgrade setuptoolsou easy_install -U setuptools.

Randall Ma
la source
79
ne fonctionne pas pour moi. J'ai installé la distribution, mais j'obtiens toujours l'erreur d'informations sur les œufs presque chaque fois que j'essaie d'installer un paquet
Riot Goes Woof
2
Pour ceux comme @Zorpix qui obtiennent toujours des erreurs, vous voudrez peut-être vérifier la version de pip que vous appelez. Sur Ubuntu, j'ai constaté que j'avais une version distribuée qui était toujours appelée.
James Snyder
1
Pour que la nouvelle version de setuptools fonctionne, vous devrez peut-être également désinstaller la distribution à la main ou en supprimant/usr/local/lib/python2.7/dist-packages/distribute-*
Michael
12
si vous rencontrez toujours des problèmes après la suppression de distribution ou que pip ne met pas correctement à niveau setuptools, essayez easy_install -U setuptoolsCela a fonctionné pour moi.
kissgyorgy
5
Curieusement, cela a corrigé l'erreur pour toutes les installations sauf pip install -U pip .
Cerin
58

Comme la distribution a été réintégrée dans setuptools, il est désormais recommandé d'installer / mettre à niveau setuptools à la place:

[sudo] pip install --upgrade setuptools
Gringo Suave
la source
7
Pour une raison quelconque, j'ai dû exécuter cela deux fois (dans mon environnement virtuel, j'avais distribué 0.6.49 et setuptools 0.6c11), puis j'ai pu installer la dernière version de pip sans problème.
glarrain
3
@glarrain c'est arrivé à moi! Merci pour l'information! la première passe de désinstaller les distribuer 0,7, et le second setuptools désinstallées 0.6c11
raid
22

Gardez à l'esprit que vous devrez peut-être le faire pip install --upgrade Distributesi vous l'avez déjà installé et que vous pippourriez être appelé pip2pour Python2 sur certains systèmes (il est sur le mien).

Naypam
la source
1
Notez que cela doit être fait en mode administrateur sous Windows pour une installation Python typique. Sinon, il est facile d'oublier un échec d'installation de Distribute.
Steven Bluen
13

J'ai eu ce problème, ainsi que d'autres problèmes avec Brewed Python sur OS X v10.9 (Mavericks).

sudo pip install --upgrade setuptools

n'a pas fonctionné pour moi, et je pense que ma configuration setuptools / distribution a été bâclée.

Je l'ai finalement fait fonctionner en courant

sudo easy_install -U setuptools
Ian weisberger
la source
11

Rien de ce qui précède n'a fonctionné pour moi sur Ubuntu 12.04 LTS (Precise Pangolin), et voici comment je l'ai résolu à la fin:

Téléchargez ez_setup.py depuis le téléchargement de setuptools (voir la section "Instructions d'installation") puis:

$ sudo python ez_setup.py

J'espère que cela fait gagner du temps à quelqu'un.

user3637041
la source
9

Cette erreur peut se produire lorsque vous essayez d'installer pycurl.

Dans ce cas, vous devez faire

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

(fondé ici: https://gist.github.com/lxneng/1031014 )

Sergei Panfilov
la source
8

Sur CentOS 6.5, la réponse courte d'une nouvelle installation est:

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

Vous ne voyez pas double, vous devez exécuter la mise à niveau setuptools deux fois. La longue réponse est ci-dessous:

L'installation du python-pippackage à l'aide de yum python-setuptoolsest une dépendance. C'est une version assez ancienne et donc elle est en train de s'installer distribute (0.6.10). Après avoir installé un gestionnaire de paquets, nous voulons généralement le mettre à jour, nous le faisons doncpip install -U pip . La version actuelle de pip pour moi est 1.5.6.

Maintenant, nous allons mettre à jour setuptools et cette version de pip est assez intelligente pour savoir qu'elle doit d'abord supprimer l'ancienne version de distribuer. Il le fait, mais au lieu d'installer la dernière version de setuptools, il l'installe setuptools (0.6c11).

À ce stade, toutes sortes de choses sont cassées en raison de cette version extrêmement ancienne de setuptools, mais nous sommes en fait à mi-chemin. Si nous pip install -U setuptoolsexécutons maintenant exactement la même commande une deuxième fois, l'ancienne version de setuptools est supprimée et la version 5.5.1 est installée. Je ne sais pas pourquoi pip ne nous amène pas directement à la nouvelle version d'un seul coup, mais c'est ce qui se passe et j'espère que cela aidera les autres à voir cela et à savoir que vous ne devenez pas fou.

liquidki
la source
6

On dirait que l'easy_install par défaut est cassé à son emplacement actuel:

$ which easy_install /usr/bin/easy_install

Un moyen de résoudre ce problème consiste à utiliser easy_install dans les packages de site. Par exemple:

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

johnpaulhayes
la source
6

J'étais confronté au même problème et j'ai essayé toutes les réponses ci-dessus. Mais malheureusement, rien de ce qui précède n'a fonctionné.

Comme note, j'ai finalement résolu ce problème en pip uninstall distribute.

Yin Song
la source
3
Cela a résolu le problème pour moi. Il s'est avéré que j'avais une ancienne version de distribuer installée, et une version encore plus ancienne de setuptools installée et étant préférée aux nouveaux setuptools installés par mon packager système ... Désinstaller setuptools et distribuer, puis réinstaller setuptools à l'aide de mon packager système résolu le problème pour moi.
Dominic LoBue
5

Je sais que c'est une question plus ancienne, mais voici les étapes que j'ai utilisées cassandra-driverpour réellement installer sur Windows 7 / Python2. J'ai Windows 10 / Python3 à la maison où je vais tester ce soir. J'ai confirmé que cela fonctionne également sur Windows 10 avec Python 2 et 3.

Problème

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

Solution TL; DR

Solution (j'aimerais que quelqu'un explique pourquoi cela a fonctionné)

  • Vous avez tenté pip install cassandra-driveret obtenu le message d'erreur ci-dessus
  • Tenté pip install --pre cassandra-driveret a obtenu l'erreur suivante
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
  • installée Microsoft Visual C++ Compiler for Python 2.7
  • Exécuté avec succès pip install --pre cassandra-driver
  • Exécuté avec succès pip uninstall cassandra-driver
  • Exécuté avec succès pip install cassandra-driver

Je le répète, je ne sais pas vraiment pourquoi cela a fonctionné. À l'heure actuelle, mes deux principales conclusions sont que le compilateur C ++ est requis ou que l'exécution de l' --preoption la première fois a installé certaines dépendances qui manquaient dans l'installation «normale». Je mettrai à jour ce soir après le travail quand j'aurai plus de détails.

Frito
la source
1

pip install -U setuptoolset easy_installmettait egg-info dans le mauvais répertoire.

Ensuite, je viens de réinstaller apt-get install python-dev. Permettez-moi d'installer les pilotes que je veux après cela

Shanwar
la source
1

essayez la commande suivante:

pip install setuptools==28.8.0
vp9031
la source
0

Je viens de convertir la réponse de liquidki en commandes Ubuntu. Sur un système basé sur Ubuntu, cela fonctionne!:

sudo apt -y install python-pip
pip install -U pip
sudo pip install -U setuptools
efkan
la source
0

Pour moi, la mise à niveau de pip de 8.1.1 vers 9.0.1 a résolu ce problème.

Vous pouvez exécuter quelque chose comme sudo -H pip2 install --upgrade pippour mettre à niveau votre version pip.

Qin Heyang
la source
0

Je rencontre également un message d'erreur similaire "La commande 'python setup.py egg_info' a échoué avec le code d'erreur 1" lorsque je veux installer cairosvg avec la commande pip install cairosvgdans un environnement virtuel.

Ensuite, j'ai essayé les deux pip install --upgrade pipet pip install --upgrade setuptoolsavant de courir pip3 install cairosvg, mais je reçois toujours cette erreur.

Je peux me débarrasser de cette erreur avec sudo devant la commande d'installation: sudo pip install cairosvg. Mais notez que la commande avec sudo installera le package pour le système python plutôt que pour l'environnement virtuel.

Donc, je vérifie davantage le message d'erreur et constate que j'obtiens l'erreur lors de l'installation du cairocffi . Ensuite, j'installe une certaine version de cairocffi ( reportez-vous à cette réponse ) avant d'installer cairosvg. Voilà comment je résous mon problème.

liushan CHEN
la source