Instalación de SetupTools en Windows de 64 bits

133

Estoy ejecutando Python 2.7 en Windows 7 de 64 bits, y cuando ejecuto el instalador para setuptools me dice que Python 2.7 no está instalado. El mensaje de error específico es:

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

Mi versión instalada de Python es:

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

Estoy mirando el sitio setuptools y no menciona ningún instalador para Windows de 64 bits. ¿Me he perdido algo o tengo que instalar esto desde la fuente?

cuantícula
fuente
77
Nota para los lectores: desplácese hacia abajo, la respuesta aceptada no es la mejor.
Desafortunadamente, el instalador de SetupTools de 64 bits no existía cuando publiqué mi pregunta, así que acepté la solución, sabiendo muy bien que es un truco.
Quanticle
2
@JohnRobertson, ¿cuál es la mejor respuesta entonces?
rrs

Respuestas:

91

Aparentemente (habiendo enfrentado problemas relacionados de 64 y 32 bits en OS X) hay un error en el instalador de Windows . Me encontré con esta solución alternativa , lo que podría ayudar, básicamente, usted crea su propio valor de registro HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.6\InstallPathy copia el valor de InstallPath desde HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath. Vea la respuesta a continuación para más detalles.

Si hace esto, tenga en cuenta que setuptools solo puede instalar bibliotecas de 32 bits .

NOTA: las respuestas a continuación ofrecen más detalles, así que léalas también.

Dave Everitt
fuente
1
Funciona con la instalación de PIL (PIL-1.1.7.win32-py2.7) también.
panny
142

Problema: tiene Python de 64 bits y un instalador de 32 bits. Esto causará problemas para los módulos de extensión.

Las razones por las cuales el instalador no encuentra Python es la emulación transparente de 32 bits de Windows 7. Los programas de 64 y 32 bits escribirán en diferentes partes del registro de Windows.

64 bits: HKLM|HKCU\SOFTWARE\

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

Esto significa que el instalador de Python de 64 bits escribe HKLM\SOFTWARE\Python, pero el instalador de herramientas de configuración de 32 bits observa HKLM\SOFTWARE\wow6432node\Python(esto lo maneja Windows automáticamente, los programas no lo notan). Este es un comportamiento esperado y no un error.

Por lo general, tiene estas opciones:

  • la forma "limpia": use Python de 32 bits si tiene que usar módulos o extensiones de 32 bits
  • la otra forma "limpia": solo use instaladores de 64 bits cuando use Python de 64 bits (ver más abajo)
  • lo que sugiere la respuesta anterior: copia HKLM\SOFTWARE\Pythona HKLM\SOFTWARE\wow6432node\Python, pero esto va a causar problemas con las distribuciones binarias, como de 64 bits de Python no puede cargar 32 bits módulos compilados (no hace esto!)
  • instale módulos Python puros con herramientas de configuración en lugar del instalador distutils (easy_install o pip)

Para setuptools, por ejemplo, no puede usar un instalador de 32 bits para Python de 64 bits, ya que incluye archivos binarios. Pero hay un instalador de 64 bits en http://www.lfd.uci.edu/~gohlke/pythonlibs/ (también tiene muchos instaladores para otros módulos) . Hoy en día, muchos paquetes en PyPi tienen distribuciones binarias, por lo que puede instalarlos a través de pip.

leoluk
fuente
77
Gran enlace para instaladores no oficiales!
Andriy Drozdyuk
Gracias. Resolvió mi problema para Python 2.7 con amd64.
nmat
2
Lo mismo ocurre al revés (2.7 32 y setuptools 64) stackoverflow.com/a/10966396/404385 <- para averiguar cuál es su
versión de
1
¡Ese enlace es oro puro!
Paul Becotte
1
Para aquellos que no saben cómo instalar un archivo WHL, los instalas usando pip, comopip install xyz.whl
Arun
69

Hice un archivo de registro (.reg) que cambiará automáticamente el registro por usted. Funciona si está instalado en "C: \ Python27":

Descargue la versión de 32 bits HKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\wow6432node\

Descargar la versión de 64 bits HKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\

Joe DF
fuente
3
Su archivo REG funcionó para mí, pero tuve el problema opuesto, así que tuve que eliminar el "\ Wow6432Node" de todos los nombres de clave.
pwhe23
Supongo que podría publicar un enlace para 32 bits ..: P
Joe DF
¡Impresionantes archivos de parches! ¡Excelente! ¡¡Gracias por eso!!
Benny Neugebauer el
@BennyNeugebauer No hay problema.
Joe DF
@EvanCaldwell ¡No hay problema!
Joe DF
28

Sí, tiene razón, el problema es con Python de 64 bits y el instalador de 32 bits para las herramientas de configuración.

La mejor manera de instalar las herramientas de configuración de 64 bits en Windows es descargar ez_setup.py en C: \ Python27 \ Scripts y ejecutarlo. Descargará el archivo .egg de 64 bits apropiado para las herramientas de configuración y lo instalará por usted.

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

PD: recomendaría no usar instaladores de instalación de herramientas .exe de 64 bits de terceros ni manipular el registro

arainchi
fuente
2
No puedo creer lo rápida y fácil que fue esta solución. Pasé horas atrapado en otras avenidas.
Brett
1
¡La mejor y más segura solución en mi opinión!
djfranzwa
9

Cree un archivo llamado python2.7.reg(archivo de registro) y coloque este contenido en él:

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"

¡Y asegúrese de que cada camino sea correcto!

Luego ejecútalo (fusiona) y listo :)

MichaelvdNet
fuente
¡Gracias! Puedo confirmar que funciona para python 2.76 y configuración h5py. Tal vez sólo actualizar la ruta doc a python276.chm para el buen orden :)
mork
9

Obtenga el archivo register.pyde esta esencia . Guárdelo en su unidad C o D, vaya a CMD para ejecutarlo con:

'python register.py'

Entonces podrás instalarlo.

nickleefly
fuente
Esta es la solución más simple. ¡Gracias! Me encontré con este problema cuando intenta instalar wxPython2.8-win32-Unicode-2.8.12.1-py27 y Allways se queja al pitón no han sido registrados
Robert1968
3

Para Python de 64 bits en Windows, descargue ez_setup.py y ejecútelo; descargará el archivo .egg apropiado y lo instalará por usted.

Al momento de escribir, el instalador .exe no es compatible con las versiones de 64 bits de Python para Windows, debido a un problema de compatibilidad del instalador distutils .

Constantin
fuente
¡este realmente funcionó para mí! el otro guión de Joe DF no funcionó para mí
palabras de todos modos
1

Para permitir que los instaladores de Windows encuentren el directorio Python instalado en Windows 7 , O cambie la instalación de Python para instalar un instalador, agregue la ruta instalada en el valor de la clave de registro InstallPath (predeterminado) :

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

Donde " X " es la versión de Python (es decir, 2.5, 2.6 o 2.7).

Monkut
fuente
1

Intenté lo anterior y agregar las claves de registro a LOCALMACHINE no estaba haciendo el trabajo. Entonces, en caso de que todavía esté atascado, intente esto.

Windows Registry Editor Versión 5.00

[HKEY_CURRENT_USER \ SOFTWARE \ Python]

[HKEY_CURRENT_USER \ SOFTWARE \ Python \ PythonCore]

[HKEY_CURRENT_USER \ SOFTWARE \ Python \ PythonCore \ 2.7]

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

[HKEY_CURRENT_USER \ SOFTWARE \ Python \ PythonCore \ 2.7 \ Help \ Main Python Documentation] @ = "C: \ Python27 \ Doc \ python272.chm"

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

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

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

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

Copie y pegue lo anterior en el bloc de notas y guárdelo como Python27.reg. Ahora ejecute / combine el archivo como se menciona en las respuestas anteriores. (Asegúrese de que las rutas de instalación de Python estén corregidas según su instalación.

Simplemente hace, lo que las respuestas anteriores sugieren para una máquina local, para el usuario actual.

Shaswat Rungta
fuente
0

Aquí hay un enlace a otra publicación / hilo. Pude ejecutar este script para automatizar el registro de Python 2.7. (¡Asegúrese de ejecutarlo desde Python 2.x .exeque desea registrar!)

Para registrar Python 3.x tuve que modificar la printsintaxis e importar winreg(en lugar de _winreg), luego ejecutar Python 3 .exe.

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

robertberrington
fuente