3

これは非常に初心者の質問ですが、Google でしばらく検索しても解決策が見つかりませんでした。Fortran 77 で記述されたいくつかのルーチンが必要な Eclipse (Linux Mint) を使用して Python コードを作成しています (コードは という名前のファイルにあります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 に答える