在雪豹(OS X 10.6.8)上,我无法加载使用boost python构建的扩展模块。代码是:
#include <boost/python.hpp>
char const* greet()
{
return "hello, world";
}
BOOST_PYTHON_MODULE(func_ext)
{
using namespace boost::python;
def("greet", greet);
}
我建立了使用:
/usr/bin/g++ -o src/func_ext.os -c -fPIC -I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/opt/local/include src/func_ext.cpp
/usr/bin/g++ -o func_ext.dylib -dynamiclib src/func_ext.os -L/opt/local/lib -lpython2.7 -lboost_python-mt
错误是:
15:52:53@tscons=>LD_LIBRARY_PATH=`pwd` python
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import func_ext
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named func_ext
有人可以帮忙吗? 非常感谢你提前!
答案 0 :(得分:0)
我认为,最直接的问题是您应该使用.so
而不是.dylib
作为扩展模块文件名。
如果这并不能解决所有问题,您可以使用python-config
命令确保您使用所有正确的编译器和链接器设置。