【问题标题】:f2py not working for canopyf2py 不适用于树冠
【发布时间】: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 运行。

标签: python numpy f2py canopy


【解决方案1】:

您可以尝试在您的脚本正在执行的目录中运行以下命令:

在 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_scriptsScripts 目录的路径。例如:C:\Python27\Scripts。如果是 Canopy,您必须查看此目录的位置...

【讨论】:

  • 这一点,以及整理出链接器和编译器路径之间的一些冲突定义,都起到了作用。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-30
  • 2020-06-10
  • 2021-08-01
相关资源
最近更新 更多