首页 > 解决方案 > C++ 应用程序因嵌入式 Python 代码而崩溃

问题描述

根据本教程中的示例,我正在尝试在 C++ 应用程序中运行 Python 代码。只需运行一个脚本,一切正常:

char filename[] = "D:\\Docs\\Embedding\\bin\\Debug\\load_continiuous_snl_data.py";
FILE* fp;

Py_Initialize();

fp = _Py_fopen(filename, "r");
PyRun_SimpleFile(fp, filename);

Py_Finalize();

但是当我尝试将脚本作为模块导入时,应用程序崩溃

std::vector<int> ExampleData(5);
for(int i=0;i<5;i++)
{
    ExampleData[i] = i+1;
}

PyObject *pName,*pModule,*pFunc,*pname;
PyObject *pValue,*pArgs,*pDict;
Py_Initialize();
pName = PyUnicode_FromString("D:\\Docs\\Embedding\\bin\\Debug\\load_continiuous_snl_data.py");

//pModule = PyImport_Import(pname); //running without this line doesn't lead to crashing

Py_Finalize();

我正在使用Python 3.7 32bit on Windows. 提前感谢您的任何建议。

标签: pythonc++embedding

解决方案


推荐阅读