【发布时间】:2021-03-26 13:33:29
【问题描述】:
我正在尝试导入 python 脚本 testscript.py 并使用 boost::python 在 c++ 中运行 testfunction。但是 boost::python 在导入行失败。 scriptModule, scriptFunc 在别处声明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++
【问题讨论】:
标签: c++ boost boost-python