2015-11-01 17 views
10

Ich bin neu bei Mac und ich verstehe nicht, warum meine Scrapy nicht mehr zu funktionieren scheint. Ich vermute, openssl ist in meinem el capitan nicht gültig.Symbol nicht gefunden: _BIO_new_CMS

Ich habe versucht:

pip install cryptography 
pip install pyOpenSSL 
brew install openssl 

und ich immer noch den Fehler unten bekommen. Gibt es eine Möglichkeit, das zu beheben?

$ python 
Python 2.7.10 (v2.7.10:15c95b7d81dc, May 23 2015, 09:33:12) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import OpenSSL 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/OpenSSL/__init__.py", line 8, in <module> 
    from OpenSSL import rand, crypto, SSL 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/OpenSSL/rand.py", line 11, in <module> 
    from OpenSSL._util import (
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/OpenSSL/_util.py", line 3, in <module> 
    from cryptography.hazmat.bindings.openssl.binding import Binding 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/cryptography/hazmat/bindings/openssl/binding.py", line 13, in <module> 
    from cryptography.hazmat.bindings._openssl import ffi, lib 
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/cryptography/hazmat/bindings/_openssl.so, 2): Symbol not found: _BIO_new_CMS 
    Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/cryptography/hazmat/bindings/_openssl.so 
    Expected in: flat namespace 
in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/cryptography/hazmat/bindings/_openssl.so 
>>> 
+0

mehr Informationen hier: https://github.com/pyca/cryptography/issues/2138 – eLRuLL

+0

Was Version von Pip benutzen Sie? Auch, was ist die Ausgabe von 'otool -L/Bibliothek/Frameworks/Python.framework/Versionen/2.7/lib/python2.7/Site-Pakete/Kryptografie/hazmat/Bindings/_openssl.so'. Es sieht so aus, als ob Sie Kryptographie in Ihre globalen Python-Pakete installieren, was normalerweise eine unkluge Wahl ist, aber wahrscheinlich nicht mit diesem Problem zusammenhängt. Edit: Da es/Library ist, ist dies wahrscheinlich python.org Python. Versuchen Sie kryptografisch zu deinstallieren und dann 'env LDFLAGS =" - L $ (brew --prefix openssl)/lib "CFLAGS =" - I $ (brew --prefix openssl)/include "pip install cryptography" –

+0

@PaulKehrer Danke, apple geliefert Python und Python.org Python ist gerade durcheinander geraten. Nach dem Aufbau des Lib-Pfades funktionierte es endlich. – suwopa

Antwort

19

ich lösen dieses Problem durch den folgenden Befehl ein:

LDFLAGS="-L/usr/local/opt/openssl/lib" pip install cryptography --no-use-wheel 

Siehe if homebrew openssl is linked, cryptography builds an unusable wheel

+1

Das Hinzufügen dieses LDFLAGS-Bits vor dem Pip-Befehl half mir, Scrapy auf OSX zu installieren – saturdayplace

+0

hhh ich auch @saturdayplace –

+4

Beachten Sie, dass dieser Befehl nach 'pip uninstall cryptography' ausgeführt werden sollte, um die zuvor installierte Version loszuwerden. –

Verwandte Themen