python - 使用 cmake 找到正确的 Python 框架

标签 python frameworks macos cmake macports

我在 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/

相关文章:

python - 使用python在mac上模拟文本输入

python - 树莓派 Python wit.ai 使用

ios - 无法加载单元测试的底层模块

mysql - 编写用于测试 SQL 存储过程的单元测试框架

iphone - 有没有 API 可以在两个 iphone/ipod Touch/ipad 之间共享数据? (游戏套件除外)

java - 启动 Anypoint Studio 时缺少错误日志

python - 部署成功后,Azure Function App 运行旧代码

python - 写入 xyz 格式的文件

python - 我正在学习 Python,为什么在此示例中使用浮点?

ios - 在 OSX : IOBluetooth or CoreBluetooth? 上模拟 HID