Python- und OpenSSL-Versionsreferenz auf OS X

Ich versuche, eine OpenSSL-Version zu lösen, die ich habe.

Es scheint, dass ich drei verschiedene Versionen von OpenSSL auf meinem Mac habe.

  1. Python 2.7.11 hat Version 0.9.7m:

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

     openssl version OpenSSL 1.0.1h 5 Jun 2014 
  3. Kürzlich kompiliert / installiert:

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

Ich habe vor kurzem mein OS X auf 10.11.5 aktualisiert. In dem Prozess, verursacht ein Problem für zuvor arbeiten Python-Skripte. Unten ist das Fehlermeldungs-Snippet:

Python-Fehlermeldung:

  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. 

(* – ja, das ist, wie die Fehlermeldung aussieht. Es ist in der Mitte des Satzes getrimmt.)

Alle Empfehlungen zur Behebung dieses Problems würden sehr geschätzt. Was ich möchte, ist, dass Python die OpenSSL Version 1.0.2h gegen die veraltete Version 0.9.7m verweisen soll.

Ich habe versucht, Python und OpenSSL viele Male mit verschiedenen Post / Blogs für die Anleitung ohne Glück zu installieren.

4 Solutions collect form web for “Python- und OpenSSL-Versionsreferenz auf OS X”

Sie können eine Version von python installieren, die eine neuere Version von openssl verwendet.

Zuerst können Sie eine neue Version der offenen SSL installieren

 brew update brew install openssl brew link --force openssl 

Du solltest eine neuere Version mit sehen

 openssl version -a 

Dann können Sie eine andere Version von Python installieren, die diese neuere Version von openssl verwendet. Wenn du pyenv benutzt , wäre das:

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

Weitere Informationen zum Installieren einer Version von Python mit einer installierten Version von openssl finden Sie hier: https://github.com/yyuu/pyenv/wiki/Common-build-problems

Verwenden Sie dies als Workaround:

 export CRYPTOGRAPHY_ALLOW_OPENSSL_098=1 

Dies scheint eine aktuelle Überprüfung der Hazmat-Kryptographie-Bibliothek zu sein. Sie sehen den Quellcode unter:

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

Die Umgebungsvariable CRYPTOGRAPHY_ALLOW_OPENSSL_098 den Fehler auf eine CRYPTOGRAPHY_ALLOW_OPENSSL_098 , wenn Sie bereit sind, das Risiko CRYPTOGRAPHY_ALLOW_OPENSSL_098 . Ich habe auch in OS X in der vergangenen Tag, so etwas geändert vor kurzem.

Dieses Problem beendet mich fast !!!! Schließlich löste mein Kerl dies nur durch Absenken der Version des Pakets "paramiko" von 2. * bis 1. * (Wie 1.15.4 ich set) kann lösen!

Wenn du You are linking against OpenSSL 1.0.0 export CRYPTOGRAPHY_ALLOW_OPENSSL_098=1 You are linking against OpenSSL 1.0.0 du You are linking against OpenSSL 1.0.0 und benutze den export CRYPTOGRAPHY_ALLOW_OPENSSL_098=1 Umgebungsvariable, um ihn zu umgehen. Danke @braddock

  • Scikit-Lernversion Mehrdeutigkeit
  • Wie überprüfe ich, welche Version von Python mein Skript ausführt?
  • Ist es noch Python 2.6 gegen Python 3?
  • Vergleichen Sie Versionszeichenfolgen in Python
  • So verwenden Sie mehrere Versionen von Python ohne Deinstallation
  • Buildout - mit verschiedenen python version
  • Wie sage ich einem Python-Skript, um eine bestimmte Version zu verwenden
  • Speichern Sie die Version des Feldes in einem Django-Modell
  • Kann keine Flasche-Mail installieren
  • Wie: Macports wählen python aus
  • Installiere bestimmte Version mit easy_install
  • Python ist die beste Programmiersprache der Welt.