本文主要说明使用SWIG来使得 python 调用 C++的方法。
- 如果没有参数传递从python传递至C++,python调用C++的最简单方法是将函数声明为C可用函数,然后作为C code被python调用,如Stack Overflow: Calling C/C++ from python?三楼所示; 
- 有参数传递至C++函数,声明时会稍有不同; 
swig 安装
| 1
 | sudo apt-get install swig
 | 
python调用C的方法
接口文件定义
| 1 2 3 4 5 6 7 8
 | %module example %{ extern int fact(int n); %} extern int fact(int n);
 | 
C源码文件
| 1 2 3 4 5
 | int fact(int n) {     if (n <= 1) return 1;     else return n*fact(n-1); }
 | 
动态链接库生成
| 1 2 3 4 5 6 7 8
 | swig -python example.i gcc -c example.c example_wrap.c -I/usr/include/python2.7 ld -shared example.o example_wrap.o -o _example.so
 | 
python调用
| 1 2 3 4 5 6 7
 | >>> import example >>> example.fact(3) 6 >>> example.fact(6) 720 >>> example.fact(2) 2
 | 
小插曲
| 1 2
 | whereis python | grep "include" # 查找python的include目录
 | 
参考资料
[1] Stack Overflow: Calling C/C++ from python?
[2] SWIG 项目主页
[3] python 调用 C++ code 
[4] C++调用python