我在 Snow Leopard 计算机上使用 python 的 macports 版本,并使用 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
,一切似乎都按预期工作。
如何使 cmake 链接到在
中找到的正确 Python 框架/opt/local/Library/Frameworks/Python.framework/Python
而不是系统中的一个
/System/Library/Frameworks/Python.framework/Python
?
最佳答案
在 ~/.bash_profile
中添加以下内容
export DYLD_FRAMEWORK_PATH=/opt/local/Library/Frameworks
至少暂时解决了这个问题。显然,cmake 使用的 python 解释器和 python 框架之间的这种不一致是一个错误,希望在新版本中得到修复。
关于python - 使用 cmake 找到正确的 Python 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1718251/