編譯python(cpython)的源碼及其用途
獲取python的源碼
3.x及最新版本的源碼://github.com/python/cpython
python2.7分支的源碼://github.com/python/cpython/tree/v2.7.18
python官網也提供源碼下載://www.python.org/downloads/source
ps. 對比過從官網下載的源碼和github內容是一樣的
python的源碼是由C語言編寫的,所以叫cpython
編譯python源碼
我是在windows上編譯python2.7的源碼,可能還需要安裝windows sdk,我的系統上已安裝。
使用vs2012及以上版本打開PCbuild目錄下的pcbuild.sln,如果提示升級解決方案,請不要升級
選中python這個project,設置python為啟動項目
選中解決方案(pcbuild) – 右鍵 – 配置管理器,在生成這列只勾選python和pythoncore
選中python 和pythoncore – 右鍵 – 平台工具集(platform toolset)設置為2012,因為我們沒有安裝它默認的2008,否則會生成失敗報未安裝vs2008的工具集
點擊生成,在PCbuild目錄下會生成python.exe,如果是debug則會生成python_d.exe
使用編譯出來的python
當把python作為遊戲的腳本語言,為保護遊戲不被反編譯我們需要對python腳本進行加密,及需要對cpython源碼做少量的修改讓它更適合遊戲領域。
我們把編譯出來的python.exe單獨拷貝出來,就可以用它來執行python腳本了,如下所示
PS E:\mypython> .\python.exe hello.py
hello
PS E:\mypython> .\python.exe
Python 2.7.18 (tags/2.7-dirty:8d21aa21f2, Apr 5 2022, 14:59:21) [MSC v.1700 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.