Estoy ejecutando un script de Python con la versión MacPorts de Python (2.7), es decir, he ejecutado:
port select --set python python27
Sin embargo, cuando ejecuto mi script, no puede encontrar un dylib en /opt/local/lib
:
ImportError: dlopen(/opt/local/lib/python2.7/site-packages/grgsm/_grgsm_swig.so, 2): Library not loaded: libgnuradio-grgsm.dylib
Referenced from: /opt/local/lib/python2.7/site-packages/grgsm/_grgsm_swig.so
Reason: image not found
El dylib en cuestión reside aquí:
-rwxr-xr-x 1 root admin 816036 Dec 16 11:24 /opt/local/lib/libgnuradio-grgsm.dylib
La configuración de export DYLIB_LIBRARY_PATH=/opt/local/lib/
no ayuda en este caso (tampoco debería ser realmente necesario para cada usuario del sistema configurar esa variable de entorno). Ya he ejecutado update_dyld_shared_cache
.
El módulo Python en cuestión reside en /opt/local/lib/python2.7/site-packages
, así que hice un enlace simbólico en /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/
.
otool -L
en la carga .so
informes:
otool -L /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/grgsm/_grgsm_swig.so
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/grgsm/_grgsm_swig.so:
libgnuradio-grgsm.dylib (compatibility version 0.0.0, current version 0.0.0)
/opt/local/lib/libboost_filesystem-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
/opt/local/lib/libboost_system-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
/opt/local/lib/libboost_thread-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
/opt/local/lib/libgnuradio-runtime.3.7.8.1.dylib (compatibility version 3.7.8, current version 0.0.0)
/opt/local/lib/libgnuradio-pmt.3.7.8.1.dylib (compatibility version 3.7.8, current version 0.0.0)
/opt/local/lib/libvolk.1.1.1.dylib (compatibility version 1.1.1, current version 0.0.0)
/usr/local/lib/libosmocore.7.dylib (compatibility version 8.0.0, current version 8.0.0)
/usr/local/lib/libosmogsm.5.dylib (compatibility version 7.0.0, current version 7.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1225.1.1)
Observe que la biblioteca en cuestión no tiene una ruta.