我很难在 Python 中使用 f2py 编译模块。
我有一个用 Fortran 编写的软件,可以在 Linux 64 位机器上很好地编译。F2Py 进一步编译了一个 Python 模块,该模块也使用 Fortran 位。
以下是 Python 模块的编译方式:
f2py --fcompiler=gfortran -I"path-to-dir-with-mod-files" -c -m mod_landems mod_landem.f90
但是,一旦我想导入该模块,就会出现错误(在 Ipython 中):
----> 1 import mod_landems
ImportError: ./mod_landems.so: undefined symbol: __nesdis_landem_module_MOD_nesdis_landem
老实说,我对这个错误感到困惑。搜索没有太大帮助,所以我需要在这里问你:我怎样才能让它工作?如果我将 python 模块代码放在与 mod 文件所在的目录相同的目录中,则会产生相同的错误消息。
这是我的一段(原始)代码:
module n_landem
implicit none
! INPUT VARIABLES
real(8) Angle
real(8) Sm_Content
real(8) Veg_Frac
real(8) Soil_Temp
real(8) Land_Temp
real(8) Snow_Depth
real(8) Frequency
! OUTPUT VARIABLES
real(8) Emis_H
real(8) Emis_V
contains
subroutine landem
USE NESDIS_LANDEM_MODULE
USE TYPE_KINDS, ONLY : fp
call NESDIS_LandEM(Angle,Frequency,Sm_Content,Veg_Frac,Soil_Temp,Land_Temp,Snow_Depth,Emis_H,Emis_V)
end subroutine landem
end module n_landem
如果我前段时间没记错的话,这个模块是可导入的,但似乎无法使其在 debian64 安装或 debian32bit 计算机上运行。