Tengo algunos módulos personalizados que se generan usando TRAGO que se instalan en una ruta de acceso 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, me sale 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
He descubierto que esto es debido a que el proceso 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 Integridad del Sistema de Protección (SIP), el DYLD_LIBRARY_PATH variable de entorno no está cargado y algunos módulos no se encuentra. Una solución es reemplazar el shebang con el codificado path de python es decir:
#!/usr/local/bin/python
Desde mi código se ejecuta en Linux y Mac OSX, en sustitución de la normal de python shebang con un duro camino en mac no es realmente una buena solución. ¿Alguien sabe cuál es la mejor solución es aquí?