我需要运行一个包含多个Fortran文件和一个Python文件的现有模型。
要运行Python文件,我试图使用f2py将Fotran代码转换为Python模块。我对简单的Fortran文件没有任何问题,但在Fortran文件使用另一个Fortran模块(second.mod)的情况下,它没有成功。 F2py在创建.so文件时工作正常,但在导入时会出现错误:
>>> import first
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: ./firstmod.so: undefined symbol: __second_MOD_secondr
为了解决这个问题,我使用了下面的命令,该命令也在另一个主题(F2PY doesn't find a module)中提出:
f2py -c --fcompiler=gfortran -I"~/Documents" --fcompiler=gfortran -I"~/Documents" -lsecond -m first first.f90 -m first first.f90
但是这次我收到了这个错误:
error: unknown file type '' (from '-m')
此时我不知道该怎么做。由于模型不是我写的,我不能考虑分享它。我使用的是Ubuntu 16.04 LTS。
为了澄清更多,实际上有4个fortran模块,但现在我遇到了仅连接其中两个(第一个和第二个)的问题。在第一个存在这些行:
use second(...)
call secondr(...)
我想我需要找到一种在创建我的python模块时包含第二个.mod文件的正确方法。 我提供的命令包含重复项,但是,由于我是新手,我只是将其从其他主题复制而没有问题。
感谢您的帮助。