62 votes

Comment utiliser "easy_install" de Python sur Windows ... ce n'est pas si facile

Après avoir installé Python 2.7 sur Windows XP, puis avoir défini manuellement le %PATH% sur python.exe (pourquoi l'installateur de Python ne le fait-il pas?), puis avoir installé setuptools 0.6c11 (pourquoi l'installateur de Python ne le fait-il pas?), puis avoir défini manuellement le %PATH% sur easy_install.exe (pourquoi l'installateur ne le fait-il pas?), j'ai enfin essayé d'installer un package Python avec easy_install, mais easy_install a échoué lorsqu'il n'a pas pu installer le package pywin32, qui est une dépendance. Comment puis-je faire fonctionner easy_install correctement sur Windows XP? L'échec est le suivant:

C:\\>easy\_install winpexpect
Recherche de winpexpect
Meilleure correspondance : winpexpect 1.4
Traitement de winpexpect-1.4-py2.7.egg
winpexpect 1.4 est déjà la version active dans easy-install.pth

Utilisation de c:\\python27\\lib\\site-packages\\winpexpect-1.4-py2.7.egg
Traitement des dépendances pour winpexpect
Recherche de pywin32>=214
Lecture de http://pypi.python.org/simple/pywin32/
Lecture de http://sf.net/projects/pywin32
Lecture de http://sourceforge.net/project/showfiles.php?group\_id=78018
Aucun paquet local ou lien de téléchargement trouvé pour pywin32>=214
Meilleure correspondance : Aucun
Traceback (most recent call last):
  File "C:\\python27\\scripts\\easy\_install-script.py", line 8, in 
    load\_entry\_point('setuptools==0.6c11', 'console\_scripts', 'easy\_install')()
  File "C:\\python27\\lib\\site-packages\\setuptools\\command\\easy\_install.py", line 1712, in main
    with\_ei\_usage(lambda:
  File "C:\\python27\\lib\\site-packages\\setuptools\\command\\easy\_install.py", line 1700, in with\_ei\_usage
    return f()
  File "C:\\python27\\lib\\site-packages\\setuptools\\command\\easy\_install.py", line 1716, in 
    distclass=DistributionWithoutHelpCommands, \*\*kw
  File "C:\\python27\\lib\\distutils\\core.py", line 152, in setup
    dist.run\_commands()
  File "C:\\python27\\lib\\distutils\\dist.py", line 953, in run\_commands
    self.run\_command(cmd)
  File "C:\\python27\\lib\\distutils\\dist.py", line 972, in run\_command
    cmd\_obj.run()
  File "C:\\python27\\lib\\site-packages\\setuptools\\command\\easy\_install.py", line 211, in run
    self.easy\_install(spec, not self.no\_deps)
  File "C:\\python27\\lib\\site-packages\\setuptools\\command\\easy\_install.py", line 446, in easy\_install
    return self.install\_item(spec, dist.location, tmpdir, deps)
  File "C:\\python27\\lib\\site-packages\\setuptools\\command\\easy\_install.py", line 481, in install\_item
    self.process\_distribution(spec, dists\[0\], deps, "Using")
  File "C:\\python27\\lib\\site-packages\\setuptools\\command\\easy\_install.py", line 519, in process\_distribution
    \[requirement\], self.local\_index, self.easy\_install
  File "C:\\python27\\lib\\site-packages\\pkg\_resources.py", line 563, in resolve
    dist = best\[req.key\] = env.best\_match(req, self, installer)
  File "C:\\python27\\lib\\site-packages\\pkg\_resources.py", line 799, in best\_match
    return self.obtain(req, installer) # try and download/install
  File "C:\\python27\\lib\\site-packages\\pkg\_resources.py", line 811, in obtain
    return installer(requirement)
  File "C:\\python27\\lib\\site-packages\\setuptools\\command\\easy\_install.py", line 434, in easy\_install
    self.local\_index
  File "C:\\python27\\lib\\site-packages\\setuptools\\package\_index.py", line 475, in fetch\_distribution
    return dist.clone(location=self.download(dist.location, tmpdir))
AttributeError: 'NoneType' object has no attribute 'clone'

9 votes

@Rafe : Cela ne l'aide pas du tout.

0 votes

@Sergio Tapia: Juste une suggestion.

0 votes

Pour répondre à la question ci-dessus, l'installateur Python ne modifiera pas votre variable PATH car 1) il ne peut pas modifier correctement le PATH lors de la désinstallation et 2) vous pouvez avoir plusieurs versions de Python sur le même système, ce qui peut entraîner un comportement inattendu. Voir bugs.python.org/issue3561

22voto

Gabriel Points 298

Si vous utilisez la version 64 bits de Windows 7, alors la solution se trouve ici: http://pypi.python.org/pypi/setuptools

en effet, vous devez télécharger un script python, l'exécuter, et ensuite easy_install fonctionnera normalement en ligne de commande.

P.S. Je suis d'accord avec l'auteur original en disant que cela devrait fonctionner dès le départ.

9voto

Brandon Points 1968

Un problème est que easy_install est configuré pour télécharger et installer des fichiers .egg ou des distributions source (contenues dans des fichiers .tgz, .tar, .tar.gz, .tar.bz2, ou .zip). Il ne sait pas comment gérer les extensions PyWin32 car elles sont placées dans un programme d'installation séparé. Vous devrez télécharger le fichier d'installation PyWin32 approprié (pour Python 2.7) et l'exécuter vous-même. Lorsque vous exécuterez à nouveau easy_install (à condition de l'avoir installé correctement, comme dans les instructions de Sergio), vous devriez voir que votre package winpexpect a été installé correctement.

Comme il s'agit de Windows et de logiciels open source, il peut souvent être nécessaire d'utiliser une combinaison désordonnée de méthodes d'installation pour que les choses fonctionnent correctement. Cependant, easy_install est toujours mieux que de modifier manuellement des fichiers de configuration, c'est sûr.

0 votes

Merci pour votre aide. En installant manuellement l'installateur exe pywin32, easy_install a pu installer le package winpexpect sans erreurs. Cependant, lorsque j'importe ce module dans python, il se termine avec "ImportError: No module named resource". S'agit-il encore d'une étape que je dois suivre pour que mon environnement python fonctionne correctement ? Ou est-ce simplement un bogue dans le module winpexpect ?

1 votes

OK, j'ai trouvé la solution : en plus d'installer manuellement pywin32, j'ai dû désinstaller les modules pexpect et winpexpect, puis réinstaller juste le module winpexpect. À ce stade, tout fonctionne.

1 votes

Soyons juste... Le désordre n'est pas parce que Windows est une source fermée, c'est parce qu'un plus grand effort a été mis en place pour s'assurer que le processus d'installation fonctionne correctement sur Linux et que Windows a été une réflexion après coup. Il n'y a absolument aucune raison pour laquelle easy_install ne pourrait pas télécharger un paquet et utiliser MSBuild pour le compiler pour le système local si nécessaire.

8voto

Eenvincible Points 889

Je suis également d'accord avec l'auteur que toutes ces choses devraient être inclues avec Python par défaut. Je suppose que nous devrons nous en accommoder jusqu'à ce que ce jour arrive. Voici une solution qui a réellement fonctionné pour moi :

installer easy_install plus rapidement et plus facilement

J'espère que cela vous aidera ou toute personne ayant le même problème!

0 votes

Cela m'a vraiment aidé. Merci!

0 votes

Obtenir 404 : Page non trouvée

7voto

kadi99 Points 71

Copiez le script ci-dessous "ez_setup.py" à partir de l'URL ci-dessous

https://bootstrap.pypa.io/ez_setup.py

Et copiez-le dans votre emplacement Python

C:\Python27>

Exécutez la commande

C:\Python27? python ez_setup.py

Cela installera le easy_install dans le répertoire Scripts

C:\Python27\Scripts

Exécutez easy install à partir du répertoire Scripts >

C:\Python27\Scripts> easy_install

1voto

Danilo Gasques Points 426

Si vous utilisez la distribution Python de Anaconda,

vous pouvez l'installer via pip

pip install setuptools

puis l'exécuter en tant que module

python -m easy_install

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X