百木园-与人分享,
就是让自己快乐。

编译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


来源:https://www.cnblogs.com/zhaoqingqing/p/16102497.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » 编译python(cpython)的源码及其用途

相关推荐

  • 暂无文章