问题标签 [f2py]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 来自 Fortran 的回调 Python
现在我正在使用f2py
从 Fortran 代码调用 Python 函数。我尝试了一个非常简单的示例,但没有成功。
Fortran90 代码:
使用命令行:
f2py -c -m 回调 callback.f90
Python代码:
错误:
python - 使用 f2py 构建 Photran 项目
我正在尝试设置 Photran 以使用 f2py 构建我的 Fortran 项目,以便能够从 Python 调用我的 Fortran 函数(在 PyDev 中,作为记录)。我试图设置一个外部构建器,但这不起作用:
这失败并出现错误error: unknown file type '' (from 'D:\workspace\FortranTDDexample')
我怀疑这不是最好的方法,并且构建配置更合适(我对此很陌生)。
所以我的问题是:
1) 是否有人记录了 Photran 和 f2py 的工作设置?
2)有没有办法让我的外部构建器(上面)工作?
numpy - f2py:在 Windows 中的 numpy 中缺少 limit.h 文件
我在使用 f2py 和 g77 编译器编译一些 FortranIV 代码时遇到问题。我需要这样做才能将一些用 Fortran 编写的非常古老的代码调用到已经存在的 Python 模块中。我通过 MinGW 安装了 gcc,但我不确定这是否有任何区别。我也在运行带有 Numpy 1.7 和 SciPy 0.12 的 Python 2.7。我的操作系统是 Windows7 x64,但我确保我所有的安装都是 32 位版本。我是 Python、Fortran 和这个论坛的新手,所以请多多包涵。使用 f2py 编译代码时出现的错误如下:
为了隔离问题,我使用了与 gfortran 编译器兼容的测试代码。我使用 '-c –compiler 调用所需的编译器。该测试与您的基本“Hello World”在同一行。对于真实代码和测试代码,抛出的错误是相同的。我查找了错误的文件“npy_common.h”,发现第 291 行调用包含标题:limits.h。由于错误发生在 Numpy 库中,我假设错误与 Numpy 相关?我似乎无法弄清楚为什么会发生此错误。
python - 使用 f2py 将文本字符串从 fortran 子例程返回到 python
我在 Fortran 中得到了这个简单的模块:
测试.f90:
编译它(在 Windows 上)gfortran test.f90 -o test.exe
并运行它,正如预期的那样:
我也可以使用 f2py 编译它:c:\Python27\python.exe c:\Python27\Scripts\f2py.py --fcompiler=gnu95 --compiler=mingw32 -c -m test \test.f90
当我运行这个 Python 脚本时:
测试.py:
我得到以下输出:
如您所见,应为“foo”的字符串为空。为什么是这样?
python - f2py,将 Python 函数传递给 Fortran 的问题
我有一个简单的 Fortran 代码(stack.f90
):
我正在编译使用:
然后使用这个 Python 脚本 ( stack.py
) 进行测试:
当我使用"python stack.py"
它运行时:
我的问题是:
为什么没有正确评估函数?
如何返回
result
Python?是否可以
xs
在 Fortran 中一次评估数组?
谢谢!
编辑:借助@SethMMorton 的精彩提示,我得出了以下结论:
运行stack.py
此命令已修改:ans = fortran_sum(func,xs)
; 给出:
这是错误的。x=x(I)
如果我添加中间变量并使用此变量调用函数,则不会发生这种奇怪的行为f(x)
。有趣的是,如果我调用f(x)
一次,所需的调用f(x(I))
也有效。应用此“修复”后:
然后编译运行,得到正确的结果:
如果有人能解释为什么会很好?
python - f2py,返回数组的 Python 函数(向量值函数)
在下面的 Python 中,我有五个函数包含在返回的数组中func
,我必须集成这些函数。代码调用使用生成的外部 Fortran 模块f2py
:
Fortran 例程是:
问题是 Fortran 仅将第一个函数集成到func(x)
. 查看打印结果:
一种解决方法是修改func(x)
以返回函数数组中给定位置的值:
然后更改 Fortran 例程以使用两个参数调用该函数:
哪个有效:
但是这里func
被调用了5次以上(实际情况下func
有300个以上的函数,所以会被调用300次以上)。
- 有谁知道更好的解决方案让 Fortran 识别返回的所有数组
func(x)
?换句话说,将 Fortran 构建fx1 = f(x1)
为一个包含 5 个元素的数组,这些元素对应于func(x)
.
OBS:我正在编译使用f2py -c --compiler=mingw32 -m trapzdv trapzdv.f90
python - 在 Mac OS 10.8 上使用 f2py/gfortran 包装 32 位库
我需要在 Python 中包装一个 Fortran 库,并且它需要是 32 位的,因为我使用的是 32 位 EPD。为此,我使用了从 fink 安装的 EPD 和 gcc 4.8 附带的 f2py。我发出以下命令:
输出在底部。请注意“文件是为 i386 构建的,它不是被链接的体系结构 (x86_64)”最后的警告。那么我做错了什么,我该如何解决这个问题?
python - 使用 f2py 在 (Fortran) 模块错误中停止 python 代码?
我正在使用 Fortran 创建一个 Python 模块f2py
。如果在 Fortran 模块中遇到错误,我想在 Python 程序中产生错误(包括错误消息)。考虑以下示例:
Fortran 代码(test.f):
这个非常简单的程序添加1
到a
. a(i)
但如果等于 0,应该会产生错误。随附的 Python 代码:
现在的输出是:
但我希望 Python 程序保留错误。请帮忙。
回答
stop
Fortran 中的命令正是这样做的。考虑更新的 Fortran 代码:
现在的输出是:
即 Python 代码在出错后不会继续。
python - 从 python 调用 LAPACK 驱动程序/函数
我需要在 python 中使用 lapack 函数 'DGGLSE' 来解决带有约束的最小二乘问题。
我发现 lapack 的一些低级功能可以在 scipy 中找到,如下所示 http://docs.scipy.org/doc/scipy/reference/linalg.lapack.html 但我感兴趣的没有包括在内,似乎大多数无论如何,lapack 的驱动程序代码不包括在内。
我想知道我是否有办法做到这一点。谢谢。-严
python - f2py 与不同版本的 Fortran 和 CPython 的性能是否不同
Fortran 有多个版本(66、77、90、95、2003、2008),CPython 有两个版本(2.x 和 3.x)。
从用户体验来看,我想知道在特定版本中编写 Fortran 源代码时 f2py 是否更快、内存效率更高或健壮。
其次,f2py 是否支持 Python 3.x,如果支持,它对 2.x 或 3.x 性能更好吗?