2009-11-11 5 views
7

저는 Snow Leopard 컴퓨터에서 macports 버전의 Python을 사용하고 cmake를 사용하여 크로스 플랫폼 확장을 빌드합니다. 즉 시스템 파이썬 - cmake가 /opt/local/bin 올바른 통역을 확인하면서 내가cmake를 사용하여 올바른 파이썬 프레임 워크 찾기

include(FindPythonInterp) 
include(FindPythonLibs ) 

그러나 CMakeLists.txt에 다음 명령을 사용하여 시스템에 파이썬 인터프리터와 라이브러리를 검색, 그것은 잘못된 프레임 워크에 연결을 시도합니다 뼈대.

-- Found PythonInterp: /opt/local/bin/python2.6 
-- Found PythonLibs: -framework Python 

내가 -framework Python/opt/local/Library/Frameworks/Python.framework/Python에 물건을 교체로이 즉시 다음과 같은 런타임 오류

Fatal Python error: Interpreter not initialized (version mismatch?) 

의 원인은 예상대로 작동하는 것 같다.

어떻게 올바른 파이썬 프레임 워크에 대한 cmake 링크가

/opt/local/Library/Frameworks/Python.framework/Python 

보다는

/System/Library/Frameworks/Python.framework/Python 

의 시스템 하나

에서 발견 할 수 있습니까?

답변

5

. 분명히, 파이썬 인터프리터와 cmake가 사용하는 파이썬 프레임 워크 사이의 불일치는 새로운 버전에서 잘 해결되어야하는 버그입니다.

1

저는 CMake에 익숙하지 않지만 gcc/ld의 Apple 버전에서는 -F 플래그를 전달하여 새 프레임 워크 검색 경로를 지정할 수 있습니다. 예를 들어 -F/opt/local/Library/Frameworks은 MacPorts의 프레임 워크 디렉토리에서 검색합니다. CMake를 사용하여 그러한 플래그를 지정할 수 있으면 문제가 해결 될 수 있습니다. 적어도 일시적 ~/.bash_profile

export DYLD_FRAMEWORK_PATH=/opt/local/Library/Frameworks 

수정에 문제를 다음과 같은 추가

관련 문제