我现在处于巨大的萧条中!我花了两天时间尝试使用boost.python。请指导我!我会解释我做了什么。
我有Winows 7 64位。 Python是64位2.7.3安装在C:\ Python27_amd64 现在,我使用boost_1_54_0.zip并在F:目录中解压缩。 我使用cmd。
自举
这会创建project-config.jam。我编辑并插入
使用msvc:9.0; 使用python:2.7:C:\ Python27_amd64 \ python:C:\ Python27_amd64 \ include:C:\ Python27_amd64 \ libs;
现在我做
。\ b2
此过程运行20分钟,我被告知已成功构建了boost。
之后我从http://sourceforge.net/projects/boost/files/boost-binaries/安装了boost二进制文件 二进制文件安装在C:\ local \ boost_1_54_0中。
现在我要创建一个General项目。
现在,我使用在C ++中嵌入python的代码
#include <boost/python.hpp>
#include <boost/detail/lightweight_test.hpp>
#include <iostream>
namespace py = boost::python;
using namespace std;
int main()
{
// Initialize the interpreter
Py_Initialize();
py::object main_module = py::import("__main__");
py::object main_namespace = main_module.attr("__dict__");
py::exec("print 'Hello, world'", main_namespace);
py::exec("print 'Hello, world'[3:5]", main_namespace);
py::exec("print '.'.join(['1','2','3'])", main_namespace);
}
我将VC ++目录中的头文件和库分别设置为F:\ boost_1_54_0 \ boost_1_54_0和F:\ boost_1_54_0 \ boost_1_54_0 \ stage \ lib。
我还设置项目 - &gt;属性 - &gt;配置属性 - &gt; C / C ++ - &gt;常规 - &gt;其他包含目录到C:\ Python27_amd64 \ include
同样,我还设置了项目 - &gt;属性 - &gt;配置属性 - &gt;接头 - &GT;一般到C:\ Python27_amd64 \ libs;“C:\ local \ boost_1_54_0 \ lib64-msvc-9.0”。
现在我使用x64调试器进行编译。它给了我一个错误
test8.exe中0x00000000处的未处理异常:0xC0000005:位置0x0000000000000000处的访问冲突。
自从过去两天以来,我很震惊......但那是我从那以后最接近的。请帮帮我!
答案 0 :(得分:1)
所以你的意思是运行时错误,对吧? 我认为你应该首先确保boost :: python本身没有抛出异常。 首先尝试使用catch(...)设置围绕python调用的try块 如果发现异常,很可能是boost :: python :: error_already_set异常。 那么,您应该像here
那样解码它