C/C++和Python混合编程

1、首先需要下载python源代码进行编译,源代码编译的过程访问如下链接:

   编译python源码

2、创建一个win32控制台项目,项目名称为:InvokePython,如图:

  C/C++和Python混合编程

3、然后将python源代码中的Include文件夹拷贝到该项目,如图:

  C/C++和Python混合编程

 只是拷贝Include还不够,需要将源代码Python-3.5.4\PC目录下的pyconfig.h文件拷贝到Include目录,如下:

C/C++和Python混合编程

然后在我们的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;

}

如图所示:

C/C++和Python混合编程

然后运行程序,发现会有报错,报错如下:

Fatal Python error: Py_Initialize: unable to load the file system codec

这个错误是因为python初始化环境的时候需要倒入系统运行库,我们将python源代码目录下的Lib目录拷贝到Debug目录,(Lib目录主要是python写的一个系统类库)如图所示:

C/C++和Python混合编程

然后在main函数开头加上一句代码,设置python运行主目录:

Py_SetPythonHome(L"D:\\VSWork\\CPPProject\\InvokePython\\Debug");

如图所示:

C/C++和Python混合编程

然后就可以运行了,如图所示:

C/C++和Python混合编程

项目已经上传,可以在此下载

点击下载