c++封裝爲python技術選型
工具 |
支持類 |
工作量 |
封裝語法難度 |
協議 |
依賴 |
Pyside |
支持 |
大 |
難 |
LGPL 可商業 |
有一個依賴庫, 不大 |
SWIG |
支持 |
小 |
簡單 |
GPL |
無 |
SIP |
支持 |
較大 |
難 |
GPL (可購買商業授權) |
無 |
Pybind11 |
支持 |
非常大(每個頭文件添加) |
較難 |
BSD |
會造依賴 |
ctypes |
不支持類, c語言較好用 |
||||
Boost.Python |
Boost依賴 如果不依賴boost 不考慮 |
建議: 如果你的純c++庫 還要做做qt界面開發建議pyside 或者 sip , 其中pyside(qt官方的) 目前不算成熟,筆者整理了1個月才把整個項目的整理完成, 並完成一個python的自動腳本可見c++直接一健生成python代碼,
sip是pyqt官方的(非官方的) 商業使用需要買授權, 但是比pyside好用很多
如果你的c++庫給不帶界面的後臺用, 建議swig也是不錯的選擇, swig比較成熟而且還能給Java, c#, 等其他語言調用,
其他幾種建議如果是小工程10w代碼下的可以使用,再大的工程不建議了,