将fortran文件导入python

时间:2013-09-25 10:21:50

标签: python eclipse fortran fortran77 f2py

这是一个非常新手的问题,但在谷歌搜索了一段时间后,我找不到解决方案。我正在使用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 个答案:

答案 0 :(得分:0)

为了使其工作,我不得不将Python解释器从Python 3.2修改为Python 2.7(因为f2py为Python 2.7生成代码)。编辑一个新的Python模块后,一切正常!

感谢所有建议和评论,这些都非常有用。