Endless loop

With the flower blooming and withering, the moon full and waning.....

0%

boost.Python学习笔记

这篇文章里介绍一下使用Python和C++混合编程的方法,主要包括两个方面
extending:在Python中调用C/C++代码
embedding:在C++代码中调用Python代码
本文的环境为ubuntu14.04.4LTS g++4.8.4 python2.7

安装boost和python-dev

boost可以使用apt-get安装
sudo apt-get install libboost-all-dev
安装完成之后目录在/usr/include/boost下,且安装程序以及将boost的路径添加到了PATH中了
python-dev依然可以使用apt-get安装
sudo apt-get install python-dev

embedding在C++代码中调用Python代码

首先我们来一个最简单的栗子

1
2
3
4
5
6
7
8
#include <Python.h>
int main(int argc, char *argv[]) {
Py_Initialize();
PyRun_SimpleString("from time import time,ctime\n"
"print 'Today is',ctime(time())\n");
Py_Finalize();
return 0;
}

假如这个文件名为test.cpp,我们使用以下命令编译它

1
gcc -I/usr/include/python2.7/ test.cpp -lpython2.7

将编译之后的程序运行,结果为

1
Today is Wed Jul 13 22:20:34 2016

未完待续…