C++调用Python,PyImport_ImportModule加载Python文件报错问题解决;

循环调用python文件,第二次调用PyImport_ImportModule函数加载python文件,软件获取不到文件指针报错,如下图所示: C++调用Python,PyImport_ImportModule加载Python文件报错问题解决;_第1张图片

如果python文件调用流程是封装为一个功能函数,软件在执行后这个功能函数,调用了Py_Initalize()后,软件没有关闭的话,是不需要调用Py_Finalize()函数去释放资源的;

如果你按照流程先初始化调用Py_Initalize()后,PyImport_ImportModule()加载python文件去执行,然后调用Py_Finalize()释放资源,此时软件进程并没有结束,而你又重复上述调用流程,重新初始化再调用PyImport_ImportModule函数去加载python文件的话,就会报错;

所以,Py_Finalize()函数一定是你软件进程结束前才去释放,正常使用,在软件没有关闭前,Py_Initalize()->PyImport_ImportModule()去调用就可以了;

你可能感兴趣的:(C++,python,开发语言,c++)