gpt4 book ai didi

c++ - 使用自定义 python 在 mac os x lion 上提升 python

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:36:25 25 4
gpt4 key购买 nike

我正在尝试让 boost python 与自定义 python 库一起工作。我有一个 python 源代码并使用以下方法构建 boost.python:

./bootstrap.sh --with-python-root=../Python-2.7.2 --with-libraries=python

然后 ./b2

但是当我尝试在我的应用程序中使用 boost.python 时,我得到了

Python fatal error :解释器未初始化(版本不匹配?)

当我调用 PyRun_SimpleString("import sys\nprint sys.version"); 时,我得到了 2.7.2,如我所料(以及我构建 boost.python 时使用的 python 版本;不是系统版本。)

有什么我想念的吗?

当我检查 dylib 与哪些库链接时,我得到了这个:

libboost_python.dylib (compatibility version 0.0.0, current version 0.0.0)
/System/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.1)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 52.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)`

在我的 Xcode 目标中,我包含了 --with-python-root 参数文件夹中的 python 和 boost/stage/lib 的内容,

Link Libraries

最佳答案

我下载了 boost python 并根据我使用 Mac Ports 安装的自定义 python 对其进行了编译,它似乎工作得很好。

我的脚步...

$ /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/python
Python 2.7.2 (default, Nov 17 2011, 00:52:26)
$ sudo ./bootstrap.sh --with-libraries=python --with-python-root=/opt/local/Library/Frameworks/Python.framework/Versions/2.7
$ ./b2
$ cd /Users/YourName/Downloads/boost_1_48_0/libs/python/example/tutorial
$ ../../../../bjam
...patience...
...patience...
...found 1577 targets...
...updating 12 targets...
common.mkdir bin
common.mkdir bin/darwin-4.2.1
common.mkdir bin/darwin-4.2.1/debug
darwin.compile.c++ bin/darwin-4.2.1/debug/hello.o
darwin.link.dll bin/darwin-4.2.1/debug/hello_ext.so
common.copy libboost_python.dylib
common.copy hello_ext.so
common.mkdir bin/hello.test
common.mkdir bin/hello.test/darwin-4.2.1
common.mkdir bin/hello.test/darwin-4.2.1/debug
capture-output bin/hello.test/darwin-4.2.1/debug/hello
**passed** bin/hello.test/darwin-4.2.1/debug/hello.test
...updated 12 targets...
$ ls
Jamroot hello.cpp hello_ext.so
bin hello.py libboost_python.dylib
$ python
Python 2.7.2 (default, Nov 17 2011, 00:52:26)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import hello_ext
>>> hello_ext.greet()
'hello, world'
>>>

此外,如果您不需要自己构建所有内容,您可以利用 mac 端口来帮助您。我没试过,但看起来 boost.python 可用,尽管版本是 1.47 而不是 1.48。

$ port info boost
boost @1.47.0, Revision 2 (devel)
Variants: debug, no_single, no_static, openmpi, python24, python25, python26, python27, python31, python32, regex_match_extra,
universal

Description: Boost provides free portable peer-reviewed C++ libraries. The emphasis is on portable libraries which work well with
the C++ Standard Library.
Homepage: http://www.boost.org

Library Dependencies: zlib, expat, bzip2, icu
Platforms: darwin
License: Boost-1.0
Maintainers: adfernandes@macports.org

其实,为了解决这个问题,我们可以看看我们的环境,比较一下是否还有问题:)。

$ echo $按TAB键

关于c++ - 使用自定义 python 在 mac os x lion 上提升 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8283603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com