如何执行“f2py”?

2024-10-01 07:13:39 发布

您现在位置:Python中文网/ 问答频道 /正文

如何包装在f2py模块中?在

我是说,我在看一些教程,说我应该执行

f2py FIB1.f -m FIB2 -h FIB1.pyf

但是,我不知道我必须在哪里执行它,当然不是在spyder或者我做错了什么。在

为什么?

因为我执行的这段代码应该是用Python从Fortran中的子例程创建Fortran的扩展模块的,但是产生了一个错误。在

  • 我的Fortran子程序:

    ^{2美元

我在Python中执行的内容:

import numpy.f2py as f2py

f2py FIB1.f -m FIB2 -h FIB1.pyf

错误是这个:

runfile('F:/SLB/Larryf2py/teste.py', wdir='F:/SLB/Larryf2py')
  File "F:/SLB/Larryf2py/teste.py", line 9
    f2py FIB1.f -m FIB2 -h FIB1.pyf
            ^
SyntaxError: invalid syntax

据我所知,不确定,它应该产生类似于:

# File setup.py
def configuration(parent_package='',top_path=None):
    from numpy.distutils.misc_util import Configuration
    config = Configuration('',parent_package,top_path)

    config.add_extension('m',
                         sources = ['m.pyf','foo.c'])
    return config
if __name__ == "__main__":
    from numpy.distutils.core import setup
    setup(**configuration(top_path='').todict())

这个例子是用C语言生成的,但我认为Fortran也是这样。在

我怎么想的?我应该在Python的另一个地方运行第一个代码。。。在

我试图复制this。在


Tags: 模块pathpyimportnumpyconfigtopsetup
3条回答

f2py不是Python命令,不能在Python shell中或在.py源文件中执行它。它是一个可执行的命令。必须在系统的shell中执行它。在

您仍然没有回答所使用的操作系统,但如果是Windows,则必须在CMD.exe命令提示符或PowerShell中运行它。如果它是Linux或类似的,请在bash或类似的shell中运行它。必须在Fortran源文件所在的同一目录(文件夹)中运行它。在

您是否在Python代码中添加f2py命令?如果是,那就不好了。在

f2py FIB1.f -m FIB2 -h FIB1.pyf需要在命令行中,而不是在任何*.py脚本中。在

From F2PY Users Guide and Reference Manualf2py is a program/compiler from The purpose of the F2PY –Fortran to Python interface generator– project is to provide a connection between Python and Fortran languages. F2PY is a Python package (with a command line tool f2py and a module f2py2e) that facilitates creating/building Python C/API extension modules that make it possible.

另外,这里详细介绍了如何使用f2py。在

OP的问题可能还有其他问题,但目前最重要的是这个问题。就像Fortran子程序没有使用implicit none等。

我找到了答案。在

看起来在这个版本的水蟒中一个是俯卧着的

Python c:\user\anaconda3\scripts\f2py.py FIB1.f -m FIB2 -h FIB1.py

这样f2py.py所有这些都被部分取代了。当然,我以后使用这个模块会有更多的麻烦,但到目前为止,我的疑虑是清楚的。在

相关问题 更多 >