【发布时间】:2013-09-20 23:19:45
【问题描述】:
我对 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 -
我找到了包含 f2py 的目录并尝试从命令行运行它,但我遇到了一个错误,其结尾为:
ValueError: [u'path']回溯通常在 f2py 编译时开始。另外,是不是有办法从命令行根目录或者Ipython接口访问f2py? -
ValueError 看起来很像 distutils 问题,同时尝试在配置不正确的环境中使用 MSVC 开始编译。可以在命令行上独立于 Python 使用编译器吗?
-
这个错误显然是由我在我的环境变量中定义(错误地)一个路径到
g77作为编译器和另一个到gfortran。在我整理出来之后,尝试在脚本文件夹中使用 f2py.py 运行。