3
這是一個非常新手的問題,但在Google搜索一段時間後,我一直無法找到解決方案。我正在使用Eclipse(在Linux Mint中)編寫一個Python代碼,它需要使用Fortran 77編寫的例程(代碼位於名爲fortran_code.f
的文件中)。我用f2py
獲取文件fortran_code.so
。該文件與Python代碼位於同一文件夾中(../workspace/python_project/src
)。在Python代碼僅包括:將fortran文件導入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。所以)我用:
f2py -c fortran_code.f -m fortran_code
該ver f2py的版本是2.而Python的版本是2.7.4
任何幫助解決這個問題將是非常有用的。
謝謝!
如果有可能將Fortran代碼放在問題中,那可能是錯誤的。 – Developer
您使用的是哪個版本的f2py和Python? ''CObjects'已被刪除,並被Python 3.0中的'Capsule'取代[(見這裏)](http://docs.python.org/2/howto/cporting.html)。我的猜測是,f2py會生成由Python 3.0(或更新版本)解釋的Python 2.7(或更早版本)的代碼。 –
並且在調用'f2py'時添加你正在使用的命令。 –