C/C++和Python混合编程
1、首先需要下载python源代码进行编译,源代码编译的过程访问如下链接:
2、创建一个win32控制台项目,项目名称为:InvokePython,如图:
3、然后将python源代码中的Include文件夹拷贝到该项目,如图:
只是拷贝Include还不够,需要将源代码Python-3.5.4\PC目录下的pyconfig.h文件拷贝到Include目录,如下:
然后在我们的main函数文件中添加如下代码:
#include "stdafx.h"
#pragma comment(lib, "D:\\VSWork\\CPPProject\\InvokePython\\InvokePython\\lib\\python35_d.lib")
#include "Python.h"
int _tmain(int argc, _TCHAR* argv[])
{
Py_Initialize();//使用python之前,要调用Py_Initialize();这个函数进行初始化
PyRun_SimpleString("print('hello')");//执行print
Py_Finalize();//调用Py_Finalize,这个和Py_Initialize相对应的.
getchar();
return 0;
}
如图所示:
然后运行程序,发现会有报错,报错如下:
Fatal Python error: Py_Initialize: unable to load the file system codec
这个错误是因为python初始化环境的时候需要倒入系统运行库,我们将python源代码目录下的Lib目录拷贝到Debug目录,(Lib目录主要是python写的一个系统类库)如图所示:
然后在main函数开头加上一句代码,设置python运行主目录:
Py_SetPythonHome(L"D:\\VSWork\\CPPProject\\InvokePython\\Debug");
如图所示:
然后就可以运行了,如图所示:
项目已经上传,可以在此下载