如何,在python代碼裡面,調用C

然後使用“python setup.py build”,使用"python setup.py install"來安裝。這種方法的好處是不求人,有了python就能玩。至於性能,只能說呵呵。

第二,Cython,據說是性能很好,但是由於它野心太大,搞得python不像python,C不像C,所以只有為python寫高性能模塊這一件事情可以用得上它,但是就為了這個功能,搞一個python的超集,有點殺雞用牛刀。這些廢話不說了,看看它怎麼玩。

cdef extern from"stdio.h":

extern int printf(const char *format, ...)

def SayHello():

printf("hello,world ")

簡單吧,C的頭文件直接包進來,C的函數直接調用了就可以了。安裝也是走setup.py的套路,是不是更方便。不好的地方是,你需要安裝cython。

第三,還有些分支,比如SWIG, 它不僅僅是為了Python可以調用C代碼,也是為了更廣泛的跨語言調用,這種方法考慮的語言更多,調用更復雜,如果只是為了Python一種語言,實在是犯不上,所以這裡就不介紹了。

對於做得到位的Python調用C代碼,我們還需要考慮Error和Exception,處理的辦法比較土,就是根據實際情況,分別返回,這樣的代碼,你去github上隨便找,都有,比如tensorflow這樣的大工程。

跨語言是為了更好使用每一種語言的優勢,但是對於每個人工智能開發和研究者來說,也是抬高了門檻。但是,從實際編碼的實踐來看,基本上你寫好一個套路的接口,推廣只不過是copy & paste,照著改改的事情,更重要的事情,還是算法。

如何,在python代碼裡面,調用C/C++代碼?

如何,在python代碼裡面,調用C/C++代碼?


分享到:


相關文章: