首页 > 解决方案 > ImportError 动态模块没有定义初始化函数(boost.python)

问题描述

谢谢你看到这个话题。我尝试使用boost.python,但现在发生此错误。

ImportError:动态模块没有定义初始化函数(initlatticepy)

我在网上查了一些问题,一些答案说 BOOST_PYTHON_MODULE 名称和文件名必须相同。(例如this page说)但我已经做到了。

这是我的代码lattice.h

BOOST_PYTHON_MODULE(latticepy)
{
  using namespace boost::python;
  class_<lattice::Lattice>("Lattice")
    .def("loadProperties", &lattice::Lattice::loadProperties)
    .def("train", &lattice::Lattice::train)
    .def_readonly("hmm_", &lattice::Lattice::hmm_);
}

并构建代码。

g++ -I`python -c 'from distutils.sysconfig import *; print get_python_inc()'` -DPIC -shared -fPIC -o latticepy.so lattice.h -g -O0 -lfst -ldl -lboost_system -lboost_python -std=c++11 -lpython2.7

标签: pythonc++boost-python

解决方案


推荐阅读