Ho alcuni moduli personalizzati che vengono generati utilizzando SWIG installati in un percorso locale, ad esempio:
catkin_ws/devel/lib/python2.7/site-packages
Quando provo a eseguire uno script python che utilizza uno di questi moduli, ottengo un errore di importazione:
"/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
Ho capito che questo è dovuto allo shebang nella parte superiore dello script python:
#!/usr/bin/env python
Poiché / usr / bin / env è protetto da System Integrity Protection (SIP), la variabile di ambiente DYLD_LIBRARY_PATH non viene caricata e alcuni moduli non possono essere trovati. Una soluzione è sostituire lo shebang con il percorso hard di Python, ad esempio:
#!/usr/local/bin/python
Poiché il mio codice funziona su Linux e Mac OSX, sostituire la normale shebang Python con un percorso hardcoded su mac non è una soluzione davvero buona. Qualcuno sa qual è la soluzione migliore qui?