代码之家  ›  专栏  ›  技术社区  ›  ephraim

将Fortran对象导入python

  •  1
  • ephraim  · 技术社区  · 6 年前

    我正在试着编译一些我在网上找到的项目。 该项目正在将一些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文件时,它会拼合起来成功地完成一些工作,但脚本中的第一行使用了该钳工:

    import _Fitter
    

    不起作用。

    我是巨蟒的新手,对Fortran一点也没有经验,所以请原谅我的无知。

    编辑:此处提供项目:

    https://github.com/ardiloot/GaussianFitter

    谢谢!

    1 回复  |  直到 6 年前
        1
  •  1
  •   ephraim    6 年前

    终于成功了,下面是我的乞丐指南:

    注意-因为它是为初学者准备的-它将所有内容都设置在全局范围内。

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

      [建造]

      编译器=mingW32

    在%pythondir%\lib\distutils中找到它

    1. 由于StupU.Py文件包含指向.c或.f文件(c++/fortran/c)的链接,以便使命令(Python StupU.Py安装)能够定位这些文件——在工作目录(即CDC:…)设置时运行命令。

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

    编辑:

    如果仍无法导入已生成的F文件-按以下方式生成可能会有所帮助:

    python setup.py build_ext --inplace
    

    它生成了一个对象(*.pyd),这有助于我在它之后,无论如何,停止工作。