Python f2py找不到任何编译器

Python f2py找不到任何编译器,python,f2py,Python,F2py,我已经安装了NAG Fortran编译器。我可以通过调用nagfor-o helloworld helloworld.f90来编译Fortran代码。如果使用f2py-c-m helloworld helloworld.f90--fcompiler=nagfor运行f2py,则不会发生任何事情。另外,如果我只是运行f2py什么都不会发生f2py——help fcompiler不提供任何输出 我安装了Windows7,并使用AnacondaPython发行版。你知道我应该如何解决这个问题吗?很不寻

我已经安装了NAG Fortran编译器。我可以通过调用
nagfor-o helloworld helloworld.f90
来编译Fortran代码。如果使用
f2py-c-m helloworld helloworld.f90--fcompiler=nagfor运行f2py,则不会发生任何事情。另外,如果我只是运行
f2py
什么都不会发生
f2py——help fcompiler
不提供任何输出


我安装了Windows7,并使用AnacondaPython发行版。你知道我应该如何解决这个问题吗?

很不寻常,你根本看不到任何错误输出。 这听起来像是你在打别的电话。 确保Anaconda的脚本目录位于您的路径上,并且当前目录中没有名为
f2py
的脚本。 根据您的计算机如何设置来解释文件类型,您可能需要运行类似于
pythonf2py.py
的程序,其余参数相同

如果您使用的是Anaconda,您应该已经安装了一份gfortran。 如果你想改为使用它,确保Anaconda的bin目录在你的路径上。 除非您有一个非常新的(1.10,目前正在开发中)版本的numpy来使用gfortran,否则您需要转到
Anaconda/Lib/site packages/numpy/distutils/fcompiler/gnu.py
并注释掉在64位windows上引起错误的行(第330行附近的某个地方)。 一旦你做到了这一点,它应该工作得很好

编辑:根据旧的和旧的,正确的
fcompiler
标志是
--fcompiler=nag

编译器是由供应商指定的,而不是由可执行文件名指定的。

根据Ian的注释,我成功地运行了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

我将.py添加到了PATHEXT,所以这不是问题所在。我的路径中有文件夹:C:\Loopy和C:\Loopy\Scripts。如果我在ipyton shell中导入f2py
,我会看到一个描述f2py用法的输出。但是,我在命令shell中使用f2py。这是正确的用法,对吗?@Moritz这是正确的用法。运行
f2py
pythonf2py.py
时,您是否看到了任何东西?有任何错误吗?在shell终端中运行
where f2py
(或
which f2py
)时会得到什么?@Moritz我刚刚更新了答案,加入了关于如何使用
fcompiler
标志的建议。如果我运行
where f2py
我会得到
C:\Loopy\Scripts\f2py.py
但是如果我运行
python f2py.py
我会得到
python:无法打开文件'f2py.py':[Errno 2]没有这样的文件或目录
。如果我在目录
C:\Loopy\Scripts
中运行
pythonf2py.py
,我会得到预期的帮助message@Moritz您是否重新启动了运行这些命令的所有终端?如果f2py在您的路径上,python应该能够看到它,但是对路径的更改在您重新启动终端之前不会生效。目前有两种可能的解决方法,一种是将python文件设置为默认情况下由python运行(右键单击python文件,鼠标悬停在“open with”上,然后单击“choose default program”),另一种是在运行f2py时指定完整路径(即运行
python C:\Loopy\Scripts\f2py.py
和其他参数)。