C++调用Python方法与例子

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chiefarbiter/article/details/79415624

1.以Python2.7为例,安装路目录如C:\Python27\include下面有C++需要的头文件Python.h等,所以需要把这个目录配置到VS工程属性include附加目录。

2.链接器需要python27_d.lib或者python27.lib,一般我们下载的python都是64位release版,没有python27_d.lib,所以我们在VS工程链接属性下附加python27.lib和附加目录:C:\Python27\libs。

3.代码:

#include "Python.h"

int _tmain(int argc, _TCHAR* argv[])
{

Py_Initialize();         //调用python api之前要初始化

        //这里可放任何python api函数,比如下面这个python的print

PyRun_SimpleString("print '这句话是由Python API输出的,不是C++输出的!'");

Py_Finalize(); //调用完python api别忘记释放资源
        system("Pause");
return 0;

}

4.编译可能通不过,有以下两点原因:

第一,可能报找不到python27_d.lib,如果是这样,修改如下:

修改C:\Python27\include\pyconfig.h,找到

#ifdef _DEBUG
//# define Py_DEBUG       //注视掉即可

#endif

# ifdef _DEBUG
//# pragma comment(lib,"python27_d.lib")
# pragma comment(lib,"python27.lib")    //这里改成release版的
# else
# pragma comment(lib,"python27.lib")

# endif /* _DEBUG */


修改C:\Python27\include\object.h如下:

#if defined(Py_DEBUG) && !defined(Py_TRACE_REFS)
//#define Py_TRACE_REFS        //注释掉即可

#endif

第二,某些函数Link出错,因为VS debug默认是win32的,这里改为x64,再编译就通过了。



展开阅读全文

没有更多推荐了,返回首页