I hit this every time I install packages on Mac OS X that use libssl, it looks like extensions are built linking to .dylib's that are not resolveable when the library is actually used:
from OpenSSL import SSL
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "python2.7/site-packages/OpenSSL/__init__.py", line 8, in <module> from OpenSSL import rand, crypto, SSL File "python2.7/site-packages/OpenSSL/rand.py", line 11, in <module> from OpenSSL._util import ( File "python2.7/site-packages/OpenSSL/_util.py", line 6, in <module> from cryptography.hazmat.bindings.openssl.binding import Binding File "python2.7/site-packages/cryptography/hazmat/bindings/openssl/binding.py", line 13, in <module> from cryptography.hazmat.bindings._openssl import ffi, lib ImportError: dlopen(python2.7/site-packages/cryptography/hazmat/bindings/_openssl.so, 2): Library not loaded: libssl.1.0.0.dylib Referenced from: python2.7/site-packages/cryptography/hazmat/bindings/_openssl.so Reason: image not found
Looking at what this links to, I see:
$ otool -L lib/python2.7/site-packages/cryptography/hazmat/bindings/_openssl.so lib/python2.7/site-packages/cryptography/hazmat/bindings/_openssl.so: libssl.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
Whereas the functional _ssl that ships with Python distributions on Mac OS X look like this:
$ otool -L .../lib/python2.7/lib-dynload/_ssl.so .../lib/python2.7/lib-dynload/_ssl.so: @loader_path/../../libssl.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
What's going wrong here and what can be done differently to have 'pip install package_using_libssl' build a usable binary installation?
Here's a couple of examples of this problem in the wild:
I'm well out of my depth here, I just want to use these libraries, but I'm happy to try and do the work to make the world a better place for Mac users of these libraries...