2010-07-15 84 views
7

我总是看到人们正在为使用Y语言编写的用X语言编写的模块编写包装。我想知道写这种包装纸的基础知识。从哪里开始?我的问题在libgnokii更具体,我该如何开始为它编写python绑定。编写绑定和包装

回答

7

您可以从阅读以下内容开始:extending python with c or c++然后,当您认为这太麻烦时,您可以查看swig或可能的Boost.Pythonctypes也可能有用。

我已经完成了C++类的手动包装,并使用了swig。 swig更容易使用,但最终我想做一些不容易做的事情(或者我懒得弄清楚)。所以我最终做了手动包装。这是一个有点工作,但如果你知道一点C,这是非常可行的。

2

您可以从here开始,查看有关使用C语言扩展Python的信息。您可能想要考虑如何将libgnokii的API翻译为Pythonic的某些内容。如果你不想做很多工作,你可以编写一个简单的包装器,将所有的gnokii API调用转换为Python函数。

+0

SO制作Pythonic将意味着将整个库作为一个模块从头开始编写? – tsudot 2010-07-15 19:49:33

+2

不,不一定。我做了一个例子:我有一个C++类,在我可以使用函数之前需要创建一个对象(在这种情况下,函数应该是静态的)。与其让python模块用户完成相同的步骤,我只是在python扩展中构建了该类的一个对象,并将该函数作为python模块中的一个函数公开,隐藏了它属于某个类的事实,没有必要。所以,有点整理接口。 – 2010-07-15 19:57:42