使用多个Fortran模块时出现f2py导入问题

时间:2017-10-05 16:05:22

标签: python fortran f2py

我需要运行一个包含多个Fortran文件和一个Python文件的现有模型。

要运行Python文件,我试图使用f2py将Fo​​tran代码转换为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文件的正确方法。 我提供的命令包含重复项,但是,由于我是新手,我只是将其从其他主题复制而没有问题。

感谢您的帮助。

0 个答案:

没有答案