我正在使用f2py
编译要在Python脚本中调用的Fortran子例程。
我已经在运行#Mojave 10.14
的Mac#1上编译了Fortran源代码。我使用以下代码进行编译:
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没有。但是,我认为这应该没什么不同,因为模块已经编译。