2010-07-15 73 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