【Boost.Python】C++调用boost::python::import/exec/eval等引发的异常

问题遇到的现象和发生背景

背景

配置完毕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

另外,附上Debug文件夹

问题相关代码

# 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;
}

运行结果及报错内容

运行结果

img

报错内容

0x00007FFF64EF6F3F (python310.dll)处(位于 PyDemo.exe 中)引发的异常: 0xC0000005: 读取位置 0x0000000000000010 时发生访问冲突。

我的解答思路和尝试过的方法

  • 首先时想到未初始化,但尝试使用 C API 后,发现并非如此(❌)
  • 其次想到是Python与Boost.Python版本不对应DLL,但这种可能性极小,检查过发现也并非如此(❌)
  • 最后想到的是程序属性的问题,但重新创建程序之后仍是如此(❌)

    想问问还有什么是引发异常的原因呢

求解决方案 o((>ω< ))o

不好意思啊,这个我可能帮不上