Tengo algunos módulos personalizados que se generan utilizando SWIG que se instalan en una ruta local, por ejemplo:
catkin_ws/devel/lib/python2.7/site-packages
Cuando intento ejecutar una secuencia de comandos de Python que utiliza uno de estos módulos, aparece un error de importación:
"/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named _mag_manip
Descubrí que esto se debe al shebang en la parte superior de la secuencia de comandos de python:
#!/usr/bin/env python
Debido a que / usr / bin / env está protegido por la Protección de integridad del sistema (SIP), la variable de entorno DYLD_LIBRARY_PATH no se carga y no se pueden encontrar algunos módulos. Una solución es reemplazar el shebang con la ruta codificada de python, es decir:
#!/usr/local/bin/python
Dado que mi código se ejecuta en Linux y Mac OSX, reemplazar la Pyebon Shebang normal por una ruta codificada en Mac no es una solución realmente buena. ¿Alguien sabe cuál es la mejor solución aquí?