f2py在Canopy中无法工作。

3

我对Python比较新,使用Enthought Canopy进行工作。在导入numpy中的f2py后,当尝试执行以下代码时,我一直遇到无效语法错误:

f2py -m (modname) -c --fcompiler=gfortran (prog.f90)

毋庸置疑,我已经安装了gfortran,并且该程序存在于工作目录中。即使尝试运行,...
f2py -c --help-fcompiler

在网上某处推荐的操作会导致一个错误,错误信息为:name 'c' is not defined。在输入f2py时:

module 'numpy.f2py' from 'C:\Users\acer\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.0.3.1262.win-x86_64\lib\site-packages\numpy\f2py\__init__.pyc'

这段文字的意思是:“这表明f2py已安装。有人知道我做错了什么吗?”

你说你正在从numpy中导入"f2py"?那可能就是问题所在。f2py是一个命令行工具,而不是一个Python模块。尝试在终端中运行命令。您可能需要找到安装f2py的目录(在正常的Python安装中,它应该在Scripts文件夹中,我不知道它在Canopy中的位置),并确保它在您的路径中。根据系统设置的不同,您可能需要运行类似于“Python f2py.py”而不是“f2py”的东西。 - IanH
我找到了包含f2py的目录,并尝试从命令行运行它,但是遇到了一个以ValueError: [u'path']结尾的错误。 当f2py进行编译时,通常会出现回溯(traceback)。 此外,难道没有办法从命令行的根目录或者Ipython界面访问f2py吗? - Aves
ValueError看起来非常像在未正确配置的环境中尝试使用MSVC开始编译时出现的distutils问题。你能独立于Python使用命令行上的编译器吗? - dpinte
该错误显然是由于我在环境变量中定义了一个路径错误,将其错误地指定为编译器g77,而另一个路径却指向 gfortran。解决了这个问题后,尝试在脚本文件夹中使用 f2py.py 运行就成功了。 - Aves
1个回答

0

你可以尝试在脚本所在的目录中运行以下命令:

Windows系统

python path_to_scripts\f2py.py -c -m module_name prog.f90 --fcompiler=gfortran

在Linux上

python path_to_scripts/f2py.py -c -m module_name prog.f90 --fcompiler=gfortran

path_to_scripts 是指 Scripts 目录的路径。例如:C:\Python27\Scripts。如果使用 Canopy,则需要查找此目录所在位置...


这个问题解决了,还有一些链接器和编译器路径之间的定义冲突需要解决。谢谢! - Aves

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接