web-dev-qa-db-fra.com

Installation de SetupTools sur Windows 64 bits

J'utilise Python 2.7 sur Windows 7 64 bits et, lorsque j'exécute le programme d'installation de setuptools, il m'indique que Python 2.7 n'est pas installé. Le message d'erreur spécifique est:

`Python Version 2.7 required which was not found in the registry`

Ma version installée de Python est la suivante:

`Python 2.7 (r27:82525, Jul  4 2010, 07:43:08) [MSC v.1500 64 bit (AMD64)] on win32`

Je regarde le site setuptools et il ne mentionne aucun installateur pour Windows 64 bits. Ai-je oublié quelque chose ou dois-je l'installer à partir de la source?

133
quanticle

Apparemment (après avoir rencontré des problèmes 64 et 32 ​​bits liés sous OS X), il existe un bug dans le programme d'installation de Windows . Je suis tombé par hasard sur cette solution de contournement , ce qui pourrait aider. En gros, vous créez votre propre valeur de registre HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.6\InstallPath et copiez la valeur InstallPath de HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath. Voir la réponse ci-dessous pour plus de détails.

Si vous faites cela, sachez que setuptools peut uniquement installer des bibliothèques 32 bits .

REMARQUE: les réponses ci-dessous offrent plus de détails. Veuillez donc les lire aussi.

91
Dave Everitt

Problème: vous disposez d'un Python 64 bits et d'un programme d'installation 32 bits. Cela causera des problèmes pour les modules d’extension.

La raison pour laquelle le programme d'installation ne trouve pas Python est l'émulation transparente 32 bits de Windows 7. Les programmes 64 bits et 32 ​​bits vont écrire dans différentes parties du registre Windows.

64 bits: HKLM|HKCU\SOFTWARE\

32 bits: HKLM|HKCU\SOFTWARE\wow6432node\.

Cela signifie que le programme d’installation Python 64 bits écrit sur HKLM\SOFTWARE\Python, mais le programme d’installation 32 bits de setuptools regarde HKLM\SOFTWARE\wow6432node\Python (ce problème est géré automatiquement par Windows, les programmes ne le remarquent pas. ). Ceci est un comportement attendu et non un bug.

Habituellement, vous avez ces choix:

  • la méthode "propre": utilisez Python 32 bits si vous devez utiliser des modules ou des extensions 32 bits
  • l'autre méthode "propre": n'utilisez que les programmes d'installation 64 bits lorsque vous utilisez Python 64 bits (voir ci-dessous)
  • ce que la réponse ci-dessus suggère: copiez HKLM\SOFTWARE\Python vers HKLM\SOFTWARE\wow6432node\Python, mais ceci causera des problèmes avec les distributions binaires, comme en 64 bits Python ne peut pas charger de modules compilés en 32 bits (ne le faites PAS!)
  • installez des modules purs Python avec setuptools au lieu du programme d'installation de distutils (easy_install ou pip)

Pour setuptools lui-même, par exemple, vous ne pouvez pas utiliser un programme d'installation 32 bits pour Python 64 bits, car il inclut des fichiers binaires. Mais il existe un programme d'installation 64 bits à l'adresse http://www.lfd.uci.edu/~gohlke/pythonlibs/ (possède également de nombreux installateurs pour d'autres modules) . De nos jours, de nombreux paquets sur PyPi ont des distributions binaires, vous pouvez donc les installer via pip.

142
leoluk

J'ai créé un fichier de registre (.reg) qui modifiera automatiquement le registre pour vous. Cela fonctionne s'il est installé dans "C:\Python27":

Télécharger la version 32 bitsHKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\wow6432node\

Télécharger la version 64 bitsHKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\

69
Joe DF

Oui, vous avez raison, le problème concerne les programmes d’installation 64 bits Python et 32 ​​bits pour setuptools.

Le meilleur moyen d'installer setuptools 64 bits sous Windows est de télécharger ez_setup.py sur C:\Python27\Scripts et de l'exécuter. Il téléchargera le fichier .Egg 64 bits approprié pour setuptools et l'installera pour vous.

Source: http://pypi.python.org/pypi/setuptools

P.S. Je vous déconseille d'utiliser des installateurs setuptools tiers-64 bits ou de manipuler le registre.

28
arainchi

Récupérez le fichier register.py de this Gist . Enregistrez-le sur votre lecteur C ou D, accédez à CMD pour l'exécuter avec:

'python register.py'

Ensuite, vous pourrez l'installer.

9
nickleefly

Créez un fichier nommé python2.7.reg (fichier de registre) et mettez-y ce contenu:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\Help]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\Help\MainPythonDocumentation]
@="C:\\Python27\\Doc\\python26.chm"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\InstallPath]
@="C:\\Python27\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\InstallPath\InstallGroup]
@="Python 2.7"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\Modules]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\PythonPath]
@="C:\\Python27\\Lib;C:\\Python27\\DLLs;C:\\Python27\\Lib\\lib-tk"

Et assurez-vous que chaque chemin est juste!

Puis lancez-le et faites-le :)

9
MichaelvdNet

Pour Python 64 bits sur Windows, téléchargez ez_setup.py et exécutez-le; il téléchargera le fichier .Egg approprié et l'installera pour vous.

Au moment de la rédaction, le programme d'installation .exe ne prend pas en charge les versions 64 bits de Python pour Windows, en raison d'un problème de compatibilité du programme d'installation de distutils .

3
Constantin

J'ai essayé ce qui précède et l'ajout des clés de registre à LOCALMACHINE ne faisait pas le travail. Donc, si vous êtes toujours bloqué, essayez ceci.

Éditeur de registre Windows version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Python]

[HKEY_CURRENT_USER\LOGICIEL\Python\PythonCore]

[HKEY_CURRENT_USER\LOGICIEL\Python\PythonCore\2.7]

[HKEY_CURRENT_USER\LOGICIEL\Python\PythonCore\2.7\Help]

[HKEY_CURRENT_USER\LOGICIEL\Python\PythonCore\2.7\Aide\Principal Python Documentation] @ = "C:\Python27\Doc\python272.chm"

[HKEY_CURRENT_USER\LOGICIEL\Python\PythonCore\2.7\InstallPath] @ = "C:\Python27 \"

[HKEY_CURRENT_USER\LOGICIEL\Python\PythonCore\2.7\InstallPath\InstallGroup] @ = "Python 2.7"

[HKEY_CURRENT_USER\LOGICIEL\Python\PythonCore\2.7\Modules]

[HKEY_CURRENT_USER\LOGICIEL\Python\PythonCore\2.7\PythonPath] @ = "C:\Python27\Lib; C:\Python27\DLLs; C:\Python27\Lib\lib-tk"

Copier coller ce qui précède dans le bloc-notes et l'enregistrer sous Python27.reg. Maintenant, exécutez/fusionnez le fichier comme indiqué dans les réponses ci-dessus. (Assurez-vous que les chemins d'installation de Python sont corrigés conformément à votre installation.

C'est tout simplement ce que les réponses ci-dessus suggèrent pour une machine locale, pour l'utilisateur actuel.

1
Shaswat Rungta

Pour permettre aux installateurs Windows de trouver le répertoire Python installé dans Windows 7, OU, modifiez l'installation de Python, ajoutez le chemin d'installation dans la valeur de la clé de registre InstallPath (valeur par défaut) :

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.X\InstallPath

Où "X" est la version Python (c'est-à-dire 2.5, 2.6 ou 2.7).

1
monkut

Voici un lien vers un autre post/thread. J'ai pu exécuter ce script pour automatiser l'enregistrement de Python 2.7. (Assurez-vous de l'exécuter à partir du Python 2.x .exe que vous souhaitez enregistrer!)

Pour enregistrer Python 3.x, je devais modifier la syntaxe print et importer winreg (au lieu de _winreg), puis exécuter le Python 3 .exe.

https://stackoverflow.com/a/29633714/356889

0
robertberrington