3

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

解决此问题的任何帮助都将非常有用。

谢谢!

4

1 回答 1

0

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

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

于 2013-09-26T07:02:57.260 回答