如何包装在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。在
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脚本中。在另外,这里详细介绍了如何使用f2py。在
OP的问题可能还有其他问题,但目前最重要的是这个问题。就像Fortran子程序没有使用
implicit none
等。我找到了答案。在
看起来在这个版本的水蟒中一个是俯卧着的
这样f2py.py所有这些都被部分取代了。当然,我以后使用这个模块会有更多的麻烦,但到目前为止,我的疑虑是清楚的。在
相关问题 更多 >
编程相关推荐