dzh*_*lil 8 python macos frameworks macports cmake
我在Snow Leopard计算机上使用macports版本的python,并使用cmake为它构建跨平台扩展.我使用CMakeLists.txt中的以下命令在系统上搜索python解释器和库
include(FindPythonInterp)
include(FindPythonLibs )
Run Code Online (Sandbox Code Playgroud)
然而,当cmake识别出正确的解释器时/opt/local/bin
,它试图链接错误的框架 - 即系统Python框架.
-- Found PythonInterp: /opt/local/bin/python2.6
-- Found PythonLibs: -framework Python
Run Code Online (Sandbox Code Playgroud)
这会导致以下运行时错误
Fatal Python error: Interpreter not initialized (version mismatch?)
Run Code Online (Sandbox Code Playgroud)
当我更换-framework Python
用/opt/local/Library/Frameworks/Python.framework/Python
的东西似乎按预期方式工作.
如何针对中找到的正确Python框架进行cmake链接
/opt/local/Library/Frameworks/Python.framework/Python
Run Code Online (Sandbox Code Playgroud)
而不是系统中的一个
/System/Library/Frameworks/Python.framework/Python
Run Code Online (Sandbox Code Playgroud)
?
添加以下内容 ~/.bash_profile
export DYLD_FRAMEWORK_PATH=/opt/local/Library/Frameworks
Run Code Online (Sandbox Code Playgroud)
至少暂时解决问题.显然,python解释器和cmake使用的python框架之间的这种不一致是一个有希望在新版本中修复的错误.
归档时间: |
|
查看次数: |
3922 次 |
最近记录: |