2012-03-31 48 views
2

SWIG可以用來從Python中調用Go功能嗎?SWIG:從Python中調用Go

圍棋的例子,我在痛飲都已經看到了似乎從去調用C/C++函數。

+0

是否有您要使用SWIG構建Python到去膠理由嗎?也許更多關於你想做什麼的信息可能會有所幫助。你想使用特定的Go功能,還是想使用Go功能?你想使用Python的Go類嗎? – gbulmer 2012-03-31 14:46:28

+0

不,不是。這是一個普遍的問題。我想這是不可能的。 SWIG似乎只支持C/C++作爲「後端」。 – Petter 2012-03-31 14:55:14

回答

1

一個轉到編譯器產生C(CGO)。我從來沒有看過它,但可能有一條路徑可以使用SWIG從Python調用這些函數。

而且它們是用Cython,它轉換形狀的的Python A至C,使得可以由兩個以C組合作爲膠提供了另一種更直接的路徑,並且在不SWIG。

我被在Python的WM一個用Cython用戶告知,小心,用Cython可以生成C這就需要沒有「魔法」運行時的工作。他們的技術是使用Cython機制,例如cdef,讓自己的Python更接近C.通過改變用Cython源然後反覆看用Cython輸出,他們說,他們可能會導致Python的運行時要「消失」,並達到「純」 C.這是不理想,但可能比沒有好。

所以你可能能夠使用該機制,在其周圍都被編譯到C. 這種方法會限制你使用用Cython,這可能是太約束轉到功能包。

+0

謝謝你的回答! – Petter 2012-04-02 09:03:58

+0

@Ben - 謝謝。對不起,我無法提供更多幫助。我確實希望Cython專家能夠參與:-) – gbulmer 2012-04-02 10:03:37