C++ boost::python导入函数失败,返回“0”;访问冲突读取位置“;
我尝试在Puth::Python中导入C++中的Python脚本TestScript。但是boost::python在导入行失败。scriptModule、scriptFunc是在别处声明的C++ boost::python导入函数失败,返回“0”;访问冲突读取位置“;,c++,boost,boost-python,C++,Boost,Boost Python,我尝试在Puth::Python中导入C++中的Python脚本TestScript。但是boost::python在导入行失败。scriptModule、scriptFunc是在别处声明的boost::python::object 我应该提到单独使用PyImport_ImportModule(“testscript”)是有效的 try { Py_Initialize(); scriptModule = import("testscript&q
boost::python::object
我应该提到单独使用PyImport_ImportModule(“testscript”)是有效的
try {
Py_Initialize();
scriptModule = import("testscript");
scriptFunc = scriptModule.attr("testfunction");
}
catch (...) {
PyErr_Print();
}
堆栈跟踪:
python39.dll!_PyObject_GC_Alloc(int use_calloc, unsigned int basicsize) Line 2214 C
[Inline Frame] python39.dll!_PyObject_GC_Malloc(unsigned int) Line 2252 C
[Inline Frame] python39.dll!_PyObject_GC_New(_typeobject *) Line 2264 C
python39.dll!new_dict(_dictkeysobject * keys, _object * * values) Line 628 C
[Inline Frame] python39.dll!PyDict_New() Line 723 C
python39.dll!PyUnicode_InternInPlace(_object * * p) Line 15601 C
[Inline Frame] python39.dll!PyUnicode_InternFromString(const char *) Line 15645 C
python39.dll!PyImport_Import(_object * module_name) Line 2028 C
python39.dll!PyImport_ImportModule(const char * name) Line 1488 C
> boost_python39-vc141-mt-gd-x32-1_75.dll!boost::python::import(boost::python::str name) Line 20 C++
这里的问题是,我是在调试时编译我的应用程序的,而我编译的boost libs没有链接到python的调试dll,即python39_d.dll,正如您在堆栈跟踪中看到的那样,该dll是版本一的python39.dll