Go 1.5發布了,其中包含了一個特性:可以編譯生成動態鏈接庫,經試驗,生成的.so文件可以被python加載並調用。下面舉個例子:
先寫一個go文件main.go:
package main import "C" //export Sum func Sum(a, b int) int { return a + b } func main() {}
然后編譯go build -buildmode=c-shared -o sum.so main.go,會得到一個sum.so和一個sum.h。然后用下面的python代碼就可以調用Go代碼中的Sum()函數了:
#!/usr/bin/env python import ctypes lib = ctypes.CDLL('./sum.so') print lib.Sum(7, 11)
有了這個機制,理論上來說,就可以用Go來構建更有用的python模塊了
參考:
https://blog.filippo.io/building-python-modules-with-go-1-5/
