2016-08-24 6 views
1

SO habe ich mit errbot gearbeitet und ein virtualenv mit python3.5 gefeuert. Wenn ich den errbot Befehl ausführen bekomme ich diesen FehlerPython 3.5 OpenSSL Fehler

from OpenSSL import crypto 
    File "/Users/me/workspace/chatbotv2/chatbot_venv3/lib/python3.5/site-packages/OpenSSL/__init__.py", line 8, in <module> 
    from OpenSSL import rand, crypto, SSL 
    File "/Users/me/workspace/chatbotv2/chatbot_venv3/lib/python3.5/site-packages/OpenSSL/rand.py", line 12, in <module> 
    from OpenSSL._util import (
    File "/Users/me/workspace/chatbotv2/chatbot_venv3/lib/python3.5/site-packages/OpenSSL/_util.py", line 6, in <module> 
    from cryptography.hazmat.bindings.openssl.binding import Binding 
    File "/Users/me/workspace/chatbotv2/chatbot_venv3/lib/python3.5/site-packages/cryptography/hazmat/bindings/openssl/binding.py", line 250, in <module> 
    _verify_openssl_version(Binding.lib.SSLeay()) 
    File "/Users/me/workspace/chatbotv2/chatbot_venv3/lib/python3.5/site-packages/cryptography/hazmat/bindings/openssl/binding.py", line 230, in _verify_openssl_version 
    "You are linking against OpenSSL 0.9.8, which is no longer " 

Dieses Thema war ich auf SO so offensichtlich ‚zu Tod fragt‘ ist abel so schnell wie möglich eine Lösung zu erhalten. Ich folgte diesem answer. Allerdings Wenn ich brew link --force openssl laufen bekomme ich diese:

Warning: Refusing to link: openssl 
Linking keg-only openssl means you may end up linking against the insecure, 
deprecated system OpenSSL while using the headers from Homebrew's openssl. 
Instead, pass the full include/library paths to your compiler e.g.: 
    -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib 

Für welche ich versucht:

export CPPFLAGS='-I/usr/local/opt/openssl/include' 
export LDFLAGS='-L/usr/local/opt/openssl/lib' 

Danach bin ich verloren und weiß nicht, was zu tun ist. Wenn ich versuche: python -c "import ssl; print (ssl.OPENSSL_VERSION)" bekomme ich immer noch OpenSSL 0.9.8zg 14 July 2015. Ich bin auf OSX

+0

zwei schnelle Dinge: 1) haben Sie versucht, brew zu zwingen, openssl zuerst zu aktualisieren, bevor Sie verknüpfen? 'brew install openssl' dann' brew link openssl --force' 2) hast du nach mehreren openssl Instanzen in deinem Pfad gesucht? –

+0

Ja, ich habe openssl auf 'openssl-1.0.2h_1' aktualisiert. Wenn ich '$ echo $ PYTHONPATH' in meinem virtualenv mache, gibt es eine leere Zeichenfolge zurück – newkid101

+0

Ich brauche ein wenig mehr Informationen über Ihren Pfad. Versuchen Sie Folgendes: Geben Sie 'which openssl' ein, und sehen Sie nach, ob in'/usr/bin' und '/ usr/local/bin' ein openssl vorhanden ist. Ich rate/hoffe, Sie werden eins in beiden finden. –

Antwort

1

Aktualisieren Sie Ihren Pip. pip 8.1+ wird ein Binär-Rad herunterladen, das Kryptographie vorkompiliert haben wird. Wenn Sie es selbst kompilieren möchten, finden Sie in der Dokumentation auf der Seite installation die richtigen Umgebungsvariablen für Homebrew.