Boost Python示例失败了两次

Dew*_*wfy 2 visual-studio-2010 boost-python python-3.x

我是否一个人试图使用以下组合:boost_1_45_0,MSVC 10,Python31?

我发现来自boost的基本样本(boost_1_45_0\libs\python\example\quickstart\embedding.cpp)既没有编译(我发现如何修复它,见下文)也没有工作.编译时间问题:

if (PyImport_AppendInittab("embedded_hello", initembedded_hello) == -1)
  throw std::runtime_error("Failed to add embedded_hello to the interpreter's "
             "builtin modules");
Run Code Online (Sandbox Code Playgroud)

我发现正确的名称不是initembedded_hello而是init_module_embedded_hello.所以我的第一个问题是我对这个重命名是对的吗?

第二个问题是SystemError: NULL result without error in PyObject_Call导入我声明的模块时:

from embedded_hello import *
Run Code Online (Sandbox Code Playgroud)

注释掉导入显示内部python的模块(如io)工作正常.那么第二个问题是导入的问题是什么?

任何帮助,将不胜感激!

cgo*_*lke 5

对于Python 3,使用PyInit_embedded_hello而不是initembedded_hello.使用msvc9为我工作.

显然,quickstart\embedding.cpp尚未针对Python 3进行更新.看看pyhon/test/exec.cpp,这是类似的和最新的.

Msvc10使用与Python不同的C运行时库,这可能导致运行时崩溃.用于构建Python 2.6,2.7,3.1和3.2扩展的推荐编译器是msvc9,或者是针对vc90crt的编译器.