配置完毕Boost.Python环境后
C++调用boost::python::import/exec/eval等运行时引发异常,
然鹅Python的C API,即PyRun_ /PyImport_ 等,能正常运行。
去到boost.python的官网找示例代码亦是如此。
平台
Visual Studio 2019
平台工具集
Visual Studio 2019(v142)
C++语言标准
ISO C++14
C语言标准
MSVC
Python版本
Python 3.10.6(Tip. 本机亦装有Python3.7,未添加入环境变量)
boost版本
boost 1.79.0_vc142
# include <iostream>
# include <Python.h>
# include <boost/python.hpp>
int main(int argc, char* argv[])
{
Py_Initialize();
if (!Py_IsInitialized())
return EXIT_FAILURE;
std::cout << "Hello World from [C++]\n";
PyRun_SimpleString("print(\'Hello World from [Python C API]\')\n");
//↓这里出错了
boost::python::exec("print(\"Hello World from [Boost.Python]\")\n");
//↑ ⌈0x00007FFF64EF6F3F (python310.dll)处(位于 PyDemo.exe 中)引发的异常: 0xC0000005:
// 读取位置 0x0000000000000010 时发生访问冲突。⌋
Py_Finalize();
return EXIT_SUCCESS;
}
0x00007FFF64EF6F3F (python310.dll)处(位于 PyDemo.exe 中)引发的异常: 0xC0000005: 读取位置 0x0000000000000010 时发生访问冲突。
不好意思啊,这个我可能帮不上