VS2010调用python程序画图一闪而过,没有画图也没有报错。

流程如下;

vs2010 c++ -->调用python程序-->python程序调用matplotlib

结果控制台一闪而过,没有画图窗口弹出来,这个python脚本是已经在pycharm中调试完成的。

受此问题启发:VS2010调用matplotlib画图报“sys.argv[0] IndexError: list index out of range”

在代码中加上如下代码后大功告成:

PyRun_SimpleString("sys.argv.append('D:/code/chezhe/chezhe.py')");

完整代码:

	Py_SetPythonHome(L"D:\\ProgramData\\Miniconda3_32");
	Py_Initialize();//使用python之前,要调用Py_Initialize();这个函数进行初始化
	PyRun_SimpleString("import sys"); /*调用python文件*/
	PyRun_SimpleString("sys.path.append('./')");
	PyRun_SimpleString("sys.argv.append('D:/code/chezhe/chezhe.py')"); //这个可以随便写实际上
	PyObject * pModule = NULL;//声明变量
	PyObject * pFunc = NULL;// 声明变量
	pModule = PyImport_ImportModule("chezhe");//这里是要调用的文件名
	pFunc= PyObject_GetAttrString(pModule, "paint");//这里是要调用的函数名
	PyEval_CallObject(pFunc, NULL);//
	Py_Finalize();//调用Py_Finalize,这个根Py_Initialize相对应的。

VS2010调用python程序画图一闪而过,没有画图也没有报错。_第1张图片

 

这种问题真是完全想不到,没有任何报错。

你可能感兴趣的:(python,c++,matplotlib)