python源码精要(7)-CPython编译
1.安装与设置git编译
2.从GitHub得到CPython源代码分支
git clone https://github.com/<your_username>/cpython
cd cpython
或者从官网下载
wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz
tar zxvf Python-3.9.0.tgz
3.编译CPython
unix,macos,linux:
./configure --with-pydebug && make -j
windows
PCbuild\build.bat -e -d
4. 运行测试
./python -m test -j3
除了 CPython ,还有其它python解释器
PyPy: 主要用于主要平台上的高速(jit编译)操作的Python解释器
• Jython: Python解释器,专注于与Java虚拟机(JVM)环境的良好集成
• IronPython: 专注于与公共语言运行时(CLR)良好集成的Python解释器,由.net和Mono提供
• Stackless: Python解释器专注于提供轻量级微线程,同时保持很大程度的兼容性,与CPython特定的扩展模块
如果对依赖于POSIX系统特定功能(如使用新系统调用)的Python进行了更改时,有必要更新configure脚本以测试功能的可用性。
Python的配置脚本是从configure生成的。使用Autoconf交流。不用编辑配置,然后运行autoreconf来重新生成配置和许多其他文件(例如pyconfig.h)。
当提交一个补丁时,修改了configure.ac,您还应该包括生成的文件。
请注意,运行autoreconf与运行autoconf是不同的。例如,autoconf本身就可以不是pyconfig.h.in产生。autoreconf重复运行autoconf和许多合适的其他工具。
Python的configure.ac脚本通常需要一个特定版本Autoconf。
如果Autoconf的系统副本与此版本不匹配,则需要安装自己的Autoconf副本。
python源码精要(7)-CPython编译相关推荐
- python源码精要(6)-CPython编译标志
CPython提供了几个编译标志,它们有助于调试各种东西.而所有已知的标志可以在Misc/SpecialBuilds.txt文件中找到 1.最关键的一个是Py_DEBUG标志,它创建所谓的" ...
- python源码精要(8)-CPython源代码结构
在CPython源树中有几个顶级目录.知道每一个人应该持有什么会有所帮助: Doc:编写官方文档.这就是https://docs.python.org/所使用的.请参见构建文档. Grammar:语法 ...
- python源码精要(9)-CPython内部原理快速指南(1)
对于那些有兴趣了解更多关于CPython内部原理的人,这是一个快速指南.它提供了一个摘要的源代码结构,并包含对资源的引用. 对于Python模块,典型的布局是: • Lib/<module> ...
- python加密反编译_对Python源码进行加密及反编译前后对比
关于python的加密 目前软件开发商对 Python 加密时可能会有两种形式,一种是对python转成的exe进行 保护,另一种是直接对.py或者.pyc文件进行保护,下面将列举两种形式的保护流程. ...
- python源码精要(10)-python源代码阅读概要(1)
位于Doc/reference目录中的是Python语言中每个特性的重构文本解释.这在docs.python.org上形成了官方的Python参考指南.目录内的文件,你需要了解整个语言,结构,和关键字 ...
- python源码精要(5)-C代码规范
对公共函数使用Py前缀;决不用于静态函数. Py_前缀是为全局服务例程保留的,比如Py_FatalError; 特定的例程组(例如特定的对象类型api)使用较长的前缀,例如对字符串函数使用PyStri ...
- python源码精要(4)-C代码规范
C代码规范 当在二目操作符(比如:&&,||,&,|)在中断长表达式时,该操作符位于前一行的末尾,括号的格式应如图所示.例如: if (type->tp_dictoffs ...
- python源码精要(3)-C代码规范
C代码规范 return语句不应该有多余的括号: return albatross; /* 正确 */ return(albatross); /* 不正确 */ 函数和宏调用样式: foo(a, b, ...
- python源码精要(2)-C代码规范
C代码布局 使用4空格缩进,完全不使用制表符. 每行不应该超过79个字符.如果这个规则和前面的规则一起没有给您足够的空间来编写代码,那么您的代码就太复杂了--考虑使用子例程. 任何行都不应该以空格结束 ...
最新文章
- 简易OA漫谈之工作流设计(DB)
- Realm Configuration HOW-TO--官方
- 题库练习3(质因子、取近似值、合并表记录)
- WireShark之抓包过滤链接部分
- 云顶之弈机器人法爆_云顶之弈10.16b机器人阵容推荐 云顶之弈10.16b机器人娱乐阵容玩法攻略...
- 你是一直认为count(1)比count(*)效率高么?
- ROS入门 TX2+Turtlebot+Kinect2.0配置记录
- idea中leetcode提示未登录_IntelliJ IDEA中LeetCode插件配置问题代码解析
- JAVA程序设计第十版第七章_java程序设计第七章答案
- Android Studio导入Project、Module的正确方法
- python100例详解-Python 经典算法100及解析(小结)
- HTML导航条和翻页栏
- c语言 美元符号,汇编语言 美元符号
- 如何与别人解释云计算是什么意思?
- pc服务器是微型计算机吗,pc和主机的区别是什么?
- 一句话生成图片,FlagAI使用(附页面操作代码) | 机器学习
- 用adb往手机上装软件
- 电子合同渐成主流,君子签以区块链技术打造合同签约新生态
- AirDisk产品S3和Q3C的区别
- Java实现水电费计费项目
热门文章
- CentOS7.2最小化安装后系统优化
- VMWARE错误-VirtualInfrastructure.Utils.ClientsXml的类型初始值设定项引发异常
- BZOJ 1211 树的计数(purfer序列)
- Silverlight 2学习笔记一:初识Silverlight
- [C1W3] Neural Networks and Deep Learning - Shallow neural networks
- 八:MVC初始化数据库
- a:hover伪类在ios移动端浏览器内点击无效的解决方法
- 去培训机构参加IT培训值不值
- 静态初始化块的执行顺序
- angular2.0学习日记1