編譯python(cpython)的源碼及其用途


獲取python的源碼

3.x及最新版本的源碼:https://github.com/python/cpython

python2.7分支的源碼:https://github.com/python/cpython/tree/v2.7.18

python官網也提供源碼下載:https://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

image-20220405145512368

選中python 和pythoncore - 右鍵 - 平台工具集(platform toolset)設置為2012,因為我們沒有安裝它默認的2008,否則會生成失敗報未安裝vs2008的工具集

image-20220405150206847

點擊生成,在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.

image-20220405151117051



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM