2010-02-14 16 views
19

Google App Engine Launcher me dice:¿Cómo instalar el módulo Python ssl en Windows? El

WARNING appengine_rpc.py:399 ssl module not found. Without the ssl module, the identity of the remote host cannot be verified, and connections may NOT be secure. To fix this, please install the ssl module from http://pypi.python.org/pypi/ssl .

he descargado el paquete y que contenía un archivo setup.py. Corrí:

python setup.py install 

y luego:

Python was built with Visual Studio 2003; blablabla use MinGW32 

Luego instalado MinGW32 y ahora la compilación no funciona. El final de los errores de compilación contiene:

ssl/_ssl2.c:1561: error: `CRYPTO_LOCK' undeclared (first use in this function)

error: command 'gcc' failed with exit status 1

¿Qué debo hacer?

+1

Instalo python en win7x64 y consejo no ssl, instalo setuptools y luego pip, último: pip install pyOpenSSL. – BollMose

+0

@ El comentario de DienBell es lo que me solucionó (instalación limpia de Windows 8.1, sin entorno de compilación) – WoJ

Respuesta

15

Coge los openssl y libgw32c paquetes del proyecto (GnuWin32 descargar los archivos "Desarrollador"!) Y extraerlos en la que instaló GnuWin32 - o si usted no tiene las herramientas GnuWin32 sin embargo, se puede extraer en cualquier lugar (por ejemplo " C: \ Archivos de programa \ gnuwin32 "). Ingrese el directorio gnuwin32 en el archivo "setup.py" (reemplace "C: \ Utils \ GnuWin32" en la línea 154).

Luego puede construir el módulo ssl sin problemas. Lo probé yo mismo, usando GCC "4.3.2-tdm-2 mingw32" y con la línea de comandos setup.py build -cmingw32 (-cmingw32 fuerzas MinGW ya que también tengo el compilador de Microsoft instalado). Ejecute setup.py install después de la compilación correcta para instalar ssl.

+2

el instalador de openssl que ha vinculado ya instaló algunos (o todos) los archivos presentes en el archivo comprimido libgw32c. –

+0

incluso después de seguir sus instrucciones tuve el mismo problema al construir el módulo 'ssl –

+1

Lo siento, olvidé mencionar que necesita cambiar setup.py de acuerdo con su ruta gnuwin32. Editado la respuesta. – AndiDog

9

tuve que usar la siguiente modificación del enfoque de AndiDog:

setup.py build -cmingw32 
setup.py install --skip-build 

Sin la opción --skip-construcción, la instalación sería tratar de construir de nuevo y se quejan de MSVC nuevo:

error: Python was built with Visual Studio 2003; 
extensions must be built with a compiler than can generate compatible binaries. 
Visual Studio 2003 was not found on this system. If you have Cygwin installed, 
you can try compiling with MingW32, by passing "-c mingw32" to setup.py. 

Además, inicialmente cuando usé el comando de compilación tuve muchos errores como este:

build\temp.win32-2.5\Release\ssl\_ssl2.o:_ssl2.c:(.text+0x1d): undefined reference to `_imp__PyImport_ImportModule' 
build\temp.win32-2.5\Release\ssl\_ssl2.o:_ssl2.c:(.text+0x34): undefined reference to `_imp__PyObject_GetAttrString' 
build\temp.win32-2.5\Release\ssl\_ssl2.o:_ssl2.c:(.text+0x53): undefined reference to `_imp__PyCObject_AsVoidPtr' 

Esto fue porque originalmente había instalado la versión de 64 bits de Python 2.5.4 (python-2.5.4.amd64.msi). Lo eliminé e instalé la versión de 32 bits (python-2.5.4.msi). Esto incluye el archivo libpython25.a que el comando de compilación estaba buscando.

+0

Cuando intento construir, recibo 'command gcc failed: No such such file or directory'. ¿Algunas ideas? – Uri

+1

@Uri: Parece que tal vez gcc no está instalado o no está en la ruta. Si es así, puede que necesite reiniciar el símbolo del sistema (la ruta solo se selecciona cuando se abre el símbolo del sistema). Puede escribir 'establecer ruta' en la línea de comando, para verificar si el directorio mingw bin (por ejemplo, c: \ mingw \ bin) está en su ruta. –

1

que utilizan respuestas Saxon Druce de AndiDog y que son 100% correcto, pero puede ser que necesite alguna aclaración para los usuarios inexpertos como yo:

  1. Esto es para usuarios de Windows.

  2. Instalar Python 2.5.2 32 bit - era esencial para mí ya que tengo el sistema x64 y primero instalé Python 2.5.2 x64 y la solución propuesta no funcionó para mí, así que 32 bits es.

  3. Instalo GCC - http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/Previous/1.1006.0/tdm-gcc-4.5.2.exe/download, utilicé la última versión, no olvides seleccionar la opción agregar variable PATH durante la instalación, o tendrás que agregar la ruta a la carpeta bin GCC a tu variable de entorno "ruta" tú mismo.

  4. Blockquote openssl and libgw32c packages from the gnuwin32 project (download the "Developer files"!) and extract them where you installed gnuwin32 - or if you don't have gnuwin32 tools yet, you can extract it anywhere (e.g. "C:\Program Files\gnuwin32"). Enter the gnuwin32 directory in the "setup.py" of the ssl library file (replace "C:\Utils\GnuWin32" in line 154).

  5. plazo python setup.py build -cmingw32 (la forma más fácil es disparar cmd y navegue hasta el directorio en el que la biblioteca SSL se extrajo a) - esto se compilará biblioteca ssl

  6. plazo python setup.py install --skip-build instalarlo

Eso debería hacerlo.

De hecho, me sorprende que no hayan podido agregar la biblioteca ssl al motor de aplicaciones sdk o al instalador de python en todos estos años, puede ser que la gente no la use.

1

Desde que se lanzó TDM-GCC 4.6.1 en septiembre de 2011. El instalador de TDM-GCC descargará la última versión de GCC (4.6.1) aunque se use el tdm-gcc-4.5.2.exe. GCC 4.6.1 causará error de compilación de GCC "error: opción de línea de comando no reconocida '-mno-cygwin'" Esto se debe a que -mno-cygwin quedó obsoleto en GCC 4.6.1. Para compilar el paquete ssl contra python 2.5, necesitamos usar la versión 4.5.2 de GCC.

Después de instalar TDM-GCC, necesita hacer un paso adicional de las instrucciones de @BanditoBunny.

3.1 Descargue gcc-4.5.2-tdm-1-core.zip desde http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%204.5%20series/4.5.2-tdm-1%20SJLJ/gcc-4.5.2-tdm-1-core.zip/download. Descomprima el archivo en la carpeta MinGW32.
3.2 Vaya a la carpeta SSL y luego abra un símbolo del sistema allí. Verifique la versión de GCC (usando gcc --version) para asegurarse de que usa la versión 4.5.2. Luego continúe con el paso 4.

Cuestiones relacionadas