• 修改lib文件名称,拷贝修改C:\Python27\libs目录下原来的python27.lib为python27_d.lib

c 中嵌入python最基本用法 c++嵌入python_python

  • 包含头文件在C:\Python27\include目录下

c 中嵌入python最基本用法 c++嵌入python_C Python_02

  • 包含lib文件

c 中嵌入python最基本用法 c++嵌入python_python_03

  • 调用64位lib库需要修改版本

c 中嵌入python最基本用法 c++嵌入python_python_04

最简单的代码:

1 #include "stdafx.h"
 2 #include "python.h"
 3 
 4 
 5 int _tmain(int argc, _TCHAR* argv[])
 6 {
 7     Py_Initialize();
 8     PyRun_SimpleString("print 'hello world!' ");
 9     Py_Finalize();
10     getchar();
11     return 0;
12 }

以main.c 调用 hellWorld.py 函数为例进行说明。

       helloWorld.py 的内容很简单只是定义了hello函数然后输出“Hello World”

 

c 中嵌入python最基本用法 c++嵌入python_.net_05

 

main.c 函数也比较简单,主要是初始化python,以及导入python的模块等

 

c 中嵌入python最基本用法 c++嵌入python_C Python_06

里面的Python_Initialize()主要是初始化python解释器。

      Py_SimpleString("import sys")相当于在python中的import sys语句。

      Py_SimpleString("sys.path.append('./')")是将搜索路径设置为当前目录。

      Py_ImportModule("helloWorld")是利用导入文件函数将helloWorld.py函数导入。

      PyObject_GetAttrString(pModule, "hello")是在pyton引用模块helloWorld.py中查找hello函数。

接着调用PyEval_CallObject(pFunc, NULL)调用hello函数。

      最后是清理python环境释放资源。