8

私はSnowLeopardコンピューターでmacportsバージョンのpythonを使用しており、cmakeを使用してクロスプラットフォーム拡張機能を構築しています。CMakeLists.txtで次のコマンドを使用して、システム上のPythonインタープリターとライブラリを検索します

include(FindPythonInterp)
include(FindPythonLibs  )

ただし、cmakeはで正しいインタプリタを識別しましたが/opt/local/bin、間違ったフレームワーク、つまりシステムPythonフレームワークに対してリンクしようとします。

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

そして、これは次のランタイムエラーを引き起こします

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

-framework Python交換するとすぐに/opt/local/Library/Frameworks/Python.framework/Python期待通りに動作するようです。

にある正しいPythonフレームワークに対してcmakeリンクを作成するにはどうすればよいですか?

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

システムではなく

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

4

2 に答える 2

5

に以下を追加~/.bash_profile

export DYLD_FRAMEWORK_PATH=/opt/local/Library/Frameworks

少なくとも一時的に問題を修正します。どうやら、この python インタープリターと cmake で使用される python フレームワークとの間の不一致はバグであり、うまくいけば新しいバージョンで修正されるはずです。

于 2009-11-13T08:55:17.393 に答える
1

私は CMake に詳しくありませんが、gcc/ld の Apple バージョンでは、-Fフラグを渡して新しいフレームワークの検索パスを指定できます。たとえば-F/opt/local/Library/Frameworks、MacPorts のフレームワーク ディレクトリを検索します。CMake でそのようなフラグを指定できる場合は、問題が解決する可能性があります。

于 2009-11-12T19:26:43.197 に答える