我需要使用Python中的Fortran77脚本,所以我尝试使用F2PY包。我没有Fortran的知识,在我的Windows 10上也没有任何Fortran编译器,所以我安装了gfortran如下this guide。我认为安装工作正常,因为如果我从MSYS2 MinGW 64位运行gfortran
命令,我会得到
gfortran: fatal error: no input files
compilation terminated.
然后,我尝试在this link运行F2PY文档中的示例,但出现以下错误:
error: extension 'fib1' has Fortran sources but no Fortran compiler found
我想F2PY没有看到gfortran编译器,所以我在this guide的第四步之后设置了一个环境变量:我创建了一个名为C_INCLUDE_PATH
的新环境变量(用户变量,而不是系统变量),并将其设置为C:\msys64\usr\bin\gfortran\include
。如果我尝试重新运行这个示例,我会得到相同的错误
我错过了什么?我应该使用系统变量而不是用户变量吗?此外,变量的值看起来有点奇怪,因为我在计算机上找到的gfortran
的唯一实例是一个文件,而不是一个目录。。。
提前谢谢
更新:我可以通过在路径中添加C:\msys64\usr\bin
来解决这个问题!
现在我可以成功地编译Fortran模块,但是当我尝试用Python导入扩展模块时,我得到了
ImportError: DLL load failed while importing fib1: Couldn't find the specified module.
我还将C:\msys64\usr\lib
包含在路径中,但错误仍然存在。有什么想法吗
新的更新:我终于能够解决丢失的DLL错误!对我来说,当我运行命令来创建扩展模块(python -m numpy.f2py -c fib1.f -m fib1
)时,在我的当前目录中创建了两个东西:一个fib1.cp38-win_amd64.pyd
文件,我认为它是扩展模块本身,一个fib1
目录,包含一个.libs
目录。最后一个目录包含以下文件:
libfib1.OPD3BD7YADI2T777PBURWLTYIK5TRWK2.gfortran-win_amd64.dll
我刚刚将这个文件从.libs
目录复制到当前目录(与我的.pyd文件相同),现在exension模块运行良好
我希望这能有所帮助:)
目前没有回答
相关问题 更多 >
编程相关推荐