我正在运行带有最新 Boost 发行版 (1.55.0) 的 Mac OS X 10.8.4 (Darwin 12.4.0)。我正在按照说明进行操作here http://www.boost.org/doc/libs/1_55_0/libs/python/doc/tutorial/doc/html/python/hello.html构建我的发行版中包含的教程 Boost-Python 项目,它构建得很好。
尽管如此,输出编译的库依赖于Mac的系统Python而不是anaconda https://store.continuum.io/cshop/anaconda/我试图链接到的Python:
[00:20] [tutorial] $ otool -L libboost_python.dylib
libboost_python.dylib:
libboost_python.dylib (compatibility version 0.0.0, current version 0.0.0)
libpython2.7.dylib (compatibility version 2.7.0, current version 2.7.0)
/opt/local/lib/libgcc/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.18.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
/opt/local/lib/libgcc/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
[00:20] [tutorial] $ otool -L /usr/lib/libpython2.7.dylib
/usr/lib/libpython2.7.dylib:
/System/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.2)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
我已经尝试了以下配置,但它们似乎都没有改变要使用的Python:
$BOOST_ROOT/bootstrap.sh --with-python=$ANACONDA_PATH/bin/python
or
# Here, I've explicitly chosen Anaconda-provided libpython2.7.dylib
# $BOOST_ROOT/stage/lib/libboost_python.dylib refers to the dynamic
# version of boost_python.
sudo g++ -I$BOOST_ROOT -I$ANACONDA_PATH/include -L$ANACONDA_PATH/lib
-lpython2.7 $BOOST_ROOT/stage/lib/libboost_python.dylib
hello.cpp -o hello_ext.so
or
$BOOST_ROOT/bjam python=$ANACONDA_PATH/bin/python
不管怎样,我总会收到这样的消息:
[01:58] [tutorial] $ python hello.py
Fatal Python error: PyThreadState_Get: no current thread
Abort trap: 6
下面是系统 Python 调用的比较:
[01:58] [tutorial] $ /usr/bin/python hello.py
hello, world
相似的:Mac os x 10.8 上的 Homebrew + Python:致命 Python 错误:PyThreadState_Get:没有当前线程导入 mapnik https://stackoverflow.com/questions/15678153/homebrew-python-on-mac-os-x-10-8-fatal-python-error-pythreadstate-get-no-cu