f2py找不到任何编译器

时间:2015-02-06 16:02:01

标签: python f2py

我安装了NAG Fortran编译器。我可以通过调用nagfor -o helloworld helloworld.f90来编译Fortran代码。如果我用f2py -c -m helloworld helloworld.f90 --fcompiler=nagfor运行f2py没有任何反应。另外,如果我只是运行f2py没有任何反应。 f2py --help-fcompiler没有输出。

我安装了Windows 7并使用Anaconda Python发行版。知道我应该如何解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

根据Ian的评论和this post我设法运行f2py(遗憾的是只使用GNU Fortran编译器)。

我必须将C:\Loopy\Lib\site-packages\numpy\distutils\fcompiler\gnu.py中的第337行更改为:

pass #raise NotImplementedError("Only MS compiler supported with gfortran on win64")

此外,我使用C:\Loopy\Scripts\f2py.py

答案 1 :(得分:0)

您根本没有看到任何错误输出,这是不寻常的。 这听起来好像你在说别的东西。 确保路径上的Anaconda的脚本目录,以及当前目录中没有某种名为f2py的脚本。 根据您的计算机设置方式来解释文件类型,您可能需要运行类似python f2py.py的内容,其余参数相同。

如果你正在使用Anaconda,你应该已经有了一份gfortran的副本。 如果你想使用它,请确保Anaconda的bin目录在你的路径上。 除非你有一个非常近期的(1.10,目前处于开发阶段)numpy版本,要使用gfortran,你需要转到Anaconda/Lib/site-packages/numpy/distutils/fcompiler/gnu.py并注释掉行(在330行左右)会引发错误,如果你在64位窗口上。 一旦你完成了它,它应该可以正常工作。

修改:根据旧版f2py docscurrent source判断,正确的fcompiler标记为--fcompiler=nag。 编译器由供应商指定,而不是由可执行文件名指定。