流程如下;
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相对应的。
这种问题真是完全想不到,没有任何报错。