编译python(cpython)的源码及其用途
2023-03-31 10:39:42 时间
获取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
选中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.
相关文章
- Python中的函数与方法 以及Bound Method和Unbound Method
- 一文贯通python文件读取
- Python 中的异步编程:Asyncio
- 7个你现在就该学习Python的理由
- 提高Python运行效率的六个窍门
- Python数据科学:神经网络
- 一篇文章看懂大数据分析就业前景及职能定位
- R和Python中的文本挖掘:8个入门小贴士
- 告诉你为什么Python有点慢,但我却无所谓?
- 专注学习DevOps编程语言Top 5推荐
- Python发送邮件脚本
- Python多进程并行编程实践: mpi4py 的使用
- Python语言在未来的发展前景
- Python vs Ruby: 谁是最好的 web 开发语言?
- Python对Ruby:谁在Web开发领域更胜一筹?
- Python一行代码完成并行任务
- Python开发者2017应该关注的七个类库
- python爬虫入门基本知识
- 在终端中优雅地编写Python
- Python机器学习实战:信用卡欺诈检测