Problema de referencia de versión de Python y OpenSSL en OS X

Intento resolver un problema de versión de OpenSSL que estoy teniendo.

Parece que tengo tres versiones diferentes de OpenSSL en mi Mac.

  1. Python 2.7.11 tiene la versión 0.9.7m:

    python -c "import ssl; print ssl.OPENSSL_VERSION" OpenSSL 0.9.7m 23 Feb 2007 
  2. En la Terminal:

     openssl version OpenSSL 1.0.1h 5 Jun 2014 
  3. Recientemente comstackdo / instalado:

     /usr/local/ssl/bin/openssl OpenSSL> version OpenSSL 1.0.2h 3 May 2016 OpenSSL> 

Recientemente he actualizado mi OS X a 10.11.5. En el proceso, causó un problema para los scripts de Python que funcionaban anteriormente. A continuación se muestra el fragmento de mensaje de error:

Mensaje de error de Python:

  You are linking against OpenSSL 0.9.8, which is no longer * RuntimeError: You are linking against OpenSSL 0.9.8, which is no longer support by the OpenSSL project. You need to upgrade to a newer version of OpenSSL. 

(* – sí, así es como se ve el mensaje de error. Se recorta en medio de la oración).

Cualquier recomendación para resolver este problema sería muy apreciada. Lo que me gustaría es que Python haga referencia a la versión 1.0.2h de OpenSSL frente a la versión obsoleta 0.9.7m.

He intentado instalar Python y OpenSSL muchas veces usando varias publicaciones / blogs como guía sin ninguna suerte.

Puedes instalar una versión de python que usa una versión más nueva de openssl.

Primero puedes instalar una nueva versión de SSL abierto

 brew update brew install openssl brew link --force openssl 

Deberías ver una versión más nueva con

 openssl version -a 

Luego puedes instalar una versión diferente de python que usa esa versión más nueva de openssl. Si usas pyenv , eso sería:

 CFLAGS="-I$(brew --prefix openssl)/include" \ LDFLAGS="-L$(brew --prefix openssl)/lib" \ pyenv install -v 3.4.3 

Puede encontrar más información sobre cómo instalar una versión de python con una versión instalada de openssl aquí: https://github.com/yyuu/pyenv/wiki/Common-build-problems

Utilice esto como una solución:

 export CRYPTOGRAPHY_ALLOW_OPENSSL_098=1 

Esto parece ser una revisión reciente de la biblioteca de criptografía de materiales peligrosos. Puedes ver el código fuente en:

https://github.com/pyca/cryptography/blob/master/src/cryptography/hazmat/bindings/openssl/binding.py#L221

La variable de entorno CRYPTOGRAPHY_ALLOW_OPENSSL_098 baja el error a una advertencia de desaprobación, si está dispuesto a correr el riesgo. También me encontré con esto en OS X en el último día, así que algo cambió recientemente.

Este problema casi me mata !!!! Finalmente, mi chico resolvió esto solo bajando la versión del paquete “paramiko” de 2. * a 1. * Como 1.15.4 ¡Lo puse) puede resolverlo!

Si está obteniendo You are linking against OpenSSL 1.0.0 luego use export CRYPTOGRAPHY_ALLOW_OPENSSL_098=1 variable de entorno para export CRYPTOGRAPHY_ALLOW_OPENSSL_098=1 . Gracias @braddock

No se solucionaron problemas, ninguno de los anteriores funcionó para mí. Terminé tomando un enfoque más simple y sin complicaciones …

  1. Instale python 2.7.13 desde el sitio oficial, en realidad se instala como el python predeterminado, reemplazando al antiguo sistema de python.

https://www.python.org/downloads/mac-osx/

  1. Actualiza openssl después de la instalación de Python.

instalar sudo pip – actualizar pyOpenSSL

  1. Tendrá que volver a instalar todos sus módulos de Python (porque reemplazó a Python), le recomiendo usar pip. Después de unos minutos de instalación de pip, se actualizó Python de OSX por defecto, se había actualizado openssl y todos mis módulos (incluido el django en ejecución).