将fortran对象导入Python

时间:2018-12-24 12:16:31

标签: python fortran fortran90

我正在尝试编译一些我在网络上找到的项目。 该项目正在将一些Fortran代码包装到python对象中。

该项目的作者写道,我需要运行setup.py文件。

我已经做到了。它包含以下代码:

  ext = Extension(name = "GaussianFitter._Fitter",
                sources = ["GaussianFitter/src/lmdif.f",
                           "GaussianFitter/src/splev.f",
                           "GaussianFitter/src/gaussian.f90"],

,显然所有这些“ f”文件都已存在。 当我安装该setup.py文件时,它似乎可以成功完成某些工作,但是脚本中使用该_Fitter的第一行:

import _Fitter

不起作用。

我是python的新人,根本没有使用Fortran进行实验,所以请原谅我的无知。

编辑:此处提供项目:

https://github.com/ardiloot/GaussianFitter

谢谢!

1 个答案:

答案 0 :(得分:1)

最后做到了,所以这是我的初学者教程:

请注意-因为它是针对初学者的,因此会在全局范围内进行设置。

  1. 从以下位置安装mingw32: http://www.mingw.org/ 将其bin路径添加到系统PATH。
  2. 添加包含以下文本的setup.cfg文件:

    [构建]

    compiler = mingw32

将其定位在%pythondir%\ Lib \ distutils

  1. 因为setup.py文件包含指向.c或.f文件(c ++ / fortran / c)的链接,以便使命令(python setup.py安装)能够找到这些文件-在以下情况下运行命令工作目录(即cd c:.... \)已设置。

  2. 导入模块时,忽略代码中的红色错误行。它在LIB目录中,只需尝试运行...

编辑:

如果仍然无法导入已构建的f文件-用以下方式构建它可能会有所帮助:

python setup.py build_ext --inplace

会生成一个对象(* .pyd),这对我出于某种原因停止工作后提供了帮助。