理解swig和py++的區別

原创 2007年09月17日 04:10:00
用swig為perl和java封裝過C庫,感覺一直不錯。
後來發現很多人都改用py++,也一直沒空研究,今天終于明白區別了。

swig是一個獨立的工具,基本不需要接合額外的工具就可以完成封裝。
swig是手工封裝接口,需要用到什麽,就封裝什麽。
在集成C庫的時候,尤其是小規模應用,這個方式還算比較高效的。

但是在全面封裝一個完整的庫,尤其是C++的庫,手工把所有接口都定義一遍會累死。

py++則依賴一個工具鏈,實現原理復雜一點。

首先,gccxml完成了一個很重要的工作,就是把C/C++的代碼結構用XML表示。這樣任何語言都可以輕松的分析C/C++庫的結構,而無須自行去解析C/C++語法。
真是一個偉大的工具!

pygccxml則完成了將XML讀入python的功能,并提供方便的對象來查詢XML所表示的C++庫的結構。相比swig的手動作業,這個過程是全自動的,用程序來解決。

然後,py++將需要封裝的接口根據python的封裝方式產生出wrapper的源代碼。

最後,編譯就可以了。

終于明白為什麽python這麽快就擁有了這麽多庫,原來有了py++,完整封裝一個C/C++庫這麽容易啊!

python/c++接口库比较(SWIG,boost.python, pycxx, py++, sip, Weave, Pyrex )

目前有很多开源的python/c++ 绑定工具,搜了好多岾子,这里稍微总结下。 SWIG 支持 Python 2 and 3 配置正确的话,可以全自动完成封装(*.i文件需要自己写) 当不是全自...

SWIG学习总结(翻译,自己理解为辅)

http://blog.csdn.net/iuhsihsow/article/details/8453137 SWIG学习总结(翻译,自己理解为辅) SWIG介绍 SWIG (Simplified W...

SWIG学习总结(翻译,自己理解为辅)

原文地址 http://program.upc.edu.cn/kaitian/?p=65 SWIG介绍 SWIG (Simplified Wrapper and Interface Gener...

python .py .pyc .pyw 文件有什么区别

以下为参考链接,整理为方便自己学习 http://forum.digitser.cn/thread-1758-1-1.html.py 文件 以 .py 作扩展名的文件是 Python 源代码文件,...

pyc和py文件的区别

什么是pyc文件 pyc文件功能 如何生成pyc 文件

python.exe和pythonw.exe的区别(区分.py、.pyw、.pyc文件)

Windows系统搭建好Python的环境后,进入Python的安装目录,大家会发现目录中有python.exe和pythonw.exe两个程序。如下图所示: 它们到底有什么区别和联系呢? ...
  • pythonw
  • pythonw
  • 2017年07月05日 14:18
  • 2426

python中.py和.pyw文件的区别

以下是摘录自百度问题的答案: 严格来说,它们之间的不同就只有一个:视窗运行它们的时候调用不同的执行档案。 视窗用 python.exe 运行 .py ,用 pythonw.exe 运行 .pyw...

"*.py"和"*.pyw"的区别

python的文件格式有两种,"*.py"和"*.pyw",它们有什么不同? 问题 python的文件格式有两种,"*.py"和"*.pyw",它们有什么不同? ...

openstack中的setup.py和setup.cfg的理解

import setuptools # In python < 2.7.4, a lazy loading of package `pbr` will break # setuptools if s...

【py-faster-rcnn】【RPN】通过代码理解faster-RCNN中的RPN

原文地址 http://blog.csdn.net/happyflyy/article/details/54917514 1. RPN简介 RPN是regional proposal ne...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:理解swig和py++的區別
举报原因:
原因补充:

(最多只允许输入30个字)