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

将fortran文件导入python

  •  3
  • wuampa  · 技术社区  · 13 年前

    这是一个非常新手的问题,但在谷歌搜索了一段时间后,我一直没能找到解决方案。我正在使用Eclipse(在Linux Mint中)编写Python代码,它需要一些用Fortran 77编写的例程(代码位于名为 fortran_code.f ). 我用过 f2py 获取文件 fortran_code.so 。此文件与Python代码位于同一文件夹中( ../workspace/python_project/src ). Python代码仅包括:

    import fortran_code
    a = 10
    fortran_code.fortran_subroutine(a)
    

    再一次,结果是:

    Traceback (most recent call last):   File
    "/home/user/Documents/workspace/python_project/src/Main.py", line 7,
    in <module>
    import fortran_code ImportError: /home/user/Documents/workspace/python_project/src/fortran_code.so:
    undefined symbol: PyCObject_Type
    

    Fortran子程序代码为:

    SUBROUTINE fortran_subroutine(a) 
    REAL*8, intent(in) :: a 
    REAL*8 b 
    b=a*2 
    end subroutine fortran_subroutine 
    

    要获得.so文件(fortran_code.so),我使用:

    f2py -c fortran_code.f -m fortran_code 
    

    f2py的版本是2。Python的版本是2.7.4

    解决这个问题的任何帮助都是非常有用的。

    谢谢

    1 回复  |  直到 13 年前
        1
  •  0
  •   wuampa    12 年前

    为了让它发挥作用,我不得不将Python解释器从Python 3.2修改为Python 2.7(因为f2py为Python 2.7生成代码)。在编辑了一个新的Python模块后,一切都很好!!!

    感谢所有的建议和意见,它们真的很有帮助。

    推荐文章