Я использую f2py
для компиляции подпрограммы на Фортране для вызова в скрипте Python.
Я скомпилировал исходный код Fortran на Mac # 1, запустив Mojave 10.14
. Я скомпилировал его, используя:
f2py -c -m <ModuleName> <SourceName.f90>
Это работает. Я получаю .so
файл, который я могу импортировать в Python, используя:
import <ModuleName> as m
Проблема возникает, когда я пытаюсь запустить его на другом Mac.
На Mac # 2, также работающем с Mojave 10.14, когда я пытаюсь использовать предварительно скомпилированный модуль:
>>> import <ModuleName> as m
Traceback (most recent call last):
File "Stats_Wizard.py", line 20, in <module>
import <ModuleName> as sf
ImportError: dlopen(/path/to/<ModuleName>.so, 2): Library not loaded: /usr/local/opt/gcc/lib/gcc/9/libgfortran.5.dylib
Referenced from: /path/to/<ModuleName>.so
Reason: image not found
Я проверил хэш файлов .so
на каждом компьютере иони совпали. Это означает, что есть проблема с использованием .so
между компьютерами.
Есть ли причина, по которой я не смог бы использовать одну и ту же предварительно скомпилированную версию на каждом компьютере?
РЕДАКТИРОВАТЬ: Примечание, которое отличается в Mac # 1 и Mac # 2: Mac # 1 имеет gfortran
установлен, Mac # 2 нет. Однако я чувствую, что это не должно иметь значения, потому что модуль уже скомпилирован.