Grumpy:Google開源神器 Go上執行Python

wwdyy發表於2017-01-07

Grumpy是一個Python to Go的原始碼原始碼翻譯編譯器和執行時,旨在取代CPython 2.7。

關鍵區別在於,Grumpy是將Python原始碼編譯為Go原始碼,然後將其編譯為原生程式碼,而不是位元組碼。這也就意味著Grumpy沒有虛擬機器(VM)。編譯好的Go原始碼是對Grumpy執行時的一系列呼叫,一個Go庫服務於具有相似目的的Python C API(儘管不直接支援C API)。

執行Grumpy程式

方法1:grumprun:

執行Grumpy程式的最簡單方法就是使用make run,它封裝了一個名為grumprun的shell指令碼,它將stdin上的Python程式碼基於Grumpy構建和執行。以下所有的命令都假設從Grumpy原始碼根目錄開始執行:

echo "print 'hello, world'" | make run

方法2:grumpc

對於複雜一些的程式,你需要使用grumpc把Python程式碼編譯成Go原始碼以後再進行構建。首先,寫一個簡單的.py指令碼;

echo 'print "hello, world"' > hello.py

接下來,建立工具鏈並匯出一些使工具鏈工作的環境變數:

 make

 export GOPATH=$PWD/build

 export PYTHONPATH=$PWD/build/lib/python2.7/site-packages

最後,編譯Python指令碼並從中構建一個二進位制檔案:

tools/grumpc hello.py > hello.go

go build -o hello hello.go

好了,現在執行./hello二進位制到你的核心內容裡即可。

關於Grumpy更多內容,大家可以訪問其原始碼託管地址:https://github.com/google/grumpy

相關文章