【发布时间】:2020-07-08 21:56:36
【问题描述】:
我正在使用 f2py 成功编译我的 Fortran 子例程。但是,会创建一个文件夹以及一个 pyd 文件。
如果我没有将创建的 pyd 文件放在生成的文件夹中,我会收到此错误
ImportError: DLL load failed: The specified module could not be found.
如果我将生成的 .pyd 文件放在生成的文件夹中,我的 python 脚本将运行,并且导入似乎工作。但是,如果我运行 print(energy_f2py.__doc__) None 是输出,并且当我尝试使用子例程时出现错误 AttributeError: module 'energy_f2py' has no attribute 'potential_3'
potential_3 是subroutine 内部energy_f2py.f90 的名称
我也尝试过将energy_f2py.f90 设为包含子例程的模块,结果没有差异。
这是energy_f2py.cp36-win_amd64.pyd生成的pyd文件。我正在使用 Pycharm(Windows 10 64 位)中的命令行使用
f2py -c -m energy_f2py energy_f2py.f90python -m numpy.f2py -c -m energy_f2py energy_f2py.f90
同样的事情也会发生。
我被困在这一点上......似乎已经完成了 95% 的工作......
最后,this other post 提出了一个解决方案,将 Python 和 Fortran 模块命名为不同的名称。这个我试过了,也没有用。
【问题讨论】:
标签: python-3.x fortran f2py