如何从.so文件导入python模块?

[me@hostname python]$ cat hello_world.cc

#include <string>

#include <Python.h>

#include <boost/python.hpp>

namespace {

std::string greet() { return "Helloworld"; }

}

using namespace boost::python;

BOOST_PYTHON_MODULE(hello_world)

{

def("greet",greet);

}

[me@hostnmae python]$ g++ -c -fPIC hello_world.cc -I/path/to/boost/headers -I/path/to/python/headers -o hello_world.o

[me@hostname python]$ g++ -shared -Wl,-soname,libhello_world.so -o libhello_world.so hello_world.o

[me@hostname python]$ python

Python 2.7.1 (r271:86832, Jan 10 2011, 09:46:57)

[GCC 3.4.5 20051201 (Red Hat 3.4.5-2)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import sys

>>> sys.path.append('.')

>>> import hello_world

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

ImportError: No module named hello_world

>>>

我如上所述创建了.so文件,但无法在python中导入。我想念什么?

回答:

必须调用它hello_world.so,而不是libhello_world.so

以上是 如何从.so文件导入python模块? 的全部内容, 来源链接: utcz.com/qa/420794.html

回到顶部