이것은 매우 새로운 질문입니다. 그러나 Google에서 잠시 동안 검색 한 후에 해결책을 찾을 수 없었습니다. 나는 Fortran 77로 작성된 루틴을 필요로하는 Eclipse (Linux Mint)를 사용하여 파이썬 코드를 작성하고있다. 코드는 fortran_code.f
이라는 파일에있다. 파일 fortran_code.so
을 얻으려면 f2py
을 사용했습니다. 이 파일은 파이썬 코드 (../workspace/python_project/src
)와 같은 폴더에 있습니다. 파이썬 코드는 포함 일단Fortran 파일을 파이썬으로 가져 오기
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
포트란 서브 루틴의 코드는 다음과 같습니다
SUBROUTINE fortran_subroutine(a)
REAL*8, intent(in) :: a
REAL*8 b
b=a*2
end subroutine fortran_subroutine
은 (fortran_code하는 .so 파일을 얻을 수 있습니다. 그래서) 사용 :
f2py -c fortran_code.f -m fortran_code
ver 파이썬의 버전은 2.7.4
이 문제를 해결하는 데 도움이 될 것입니다.
감사합니다.
질문에 포트란 코드를 넣을 수 있다면 문제 일 수 있습니다. – Developer
어떤 버전의 f2py 및 Python을 사용하고 있습니까? 'CObjects'는 Python 3.0 [(see here)] (http://docs.python.org/2/howto/cporting.html)에서'Capsule'에 의해 대체되었습니다. 내 생각 엔 f2py는 Python 3.0 (또는 그 이상)에서 해석되는 Python 2.7 (또는 이전 버전) 용 코드를 생성합니다. –
또한'f2py'를 호출 할 때 사용하고있는 명령을 추가하십시오. –