在mac雪豹macports上提升python导入错误

时间:2014-03-18 20:00:41

标签: python c++ macos boost

在雪豹(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

有人可以帮忙吗? 非常感谢你提前!

1 个答案:

答案 0 :(得分:0)

我认为,最直接的问题是您应该使用.so而不是.dylib作为扩展模块文件名。

如果这并不能解决所有问题,您可以使用python-config命令确保您使用所有正确的编译器和链接器设置。