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

1voto

Mike Driscoll Points 18662

Pour commencer, cela indique que vous avez déjà ce module installé. Si vous avez besoin de le mettre à jour, vous devriez faire quelque chose comme ceci :

easy_install -U nomDuPackage

Bien sûr, easy_install ne fonctionne pas très bien si le package comporte des entêtes C qui doivent être compilés et que vous n'avez pas la bonne version de Visual Studio installée. Vous pourriez essayer d'utiliser pip ou distribute à la place de easy_install et voir s'ils fonctionnent mieux.

0 votes

Il ne s'est jamais installé complètement. Il plantait à chaque fois sur les dépendances. Il se peut qu'il se soit partiellement installé auparavant, mais c'est tout. Étant donné que ce module est destiné à Windows, je suppose qu'il est précompilé.

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