Published

24 July 2014

Tags

Contents

让 Python 和 C++ 相互调用,方法主要有以下几种:

通过 extern 生成动态链接库

via http://www.oschina.net/question/234345_48628

最经典的方法,通过在头文件里加入 extern "C" 来定义动态链接符号,通过 ctypes.CDLL 来连接,优点是即插即用,缺点是只能以纯C的方式调用,而且只能传输基础类型。

使用 Python API

via https://docs.python.org/2/extending/extending.html

最科学的方法,通过 python 提供的 API 来编写,编译出的文件可以直接 import,非常干净,而且不光可以 python 调用 c++,同样可以用 c++ 调用 python

SWIG

发现 SWIG 以后真是相见恨晚,SWIG 几乎可以把 C++ 包装给所有语言用,而且不需要在原来基础上增加或者修改代码。

基本上按着官方教程来一遍就知道怎么回事了,有一点一直被坑了很久,那就是编译出来的 .dll得把后缀改成 .pyd 才行,python3 import 的时候是不会找 .dll 后缀的…



blog comments powered by Disqus