《CPython Internals》阅读笔记:p43-p60

《CPython Internals》学习第 3 天,p43-p60 总结,总计 18 页。

一、技术总结

1.编译所需要的package

sudo apt install -y build-essential libssl-dev zlib1g-dev libncurses5-dev \
libncursesw5-dev libreadline-dev libsqlite3-dev libgdbm-dev \
libdb5.3-dev libbz2-dev libexpat1-dev liblzma-dev libffi-dev

其实我比较好奇作者列的这些 package 是根据经验还是根据什么列的,是否有遗漏?网上看的很多文章也没有说一个基本的编译有多少个 package 是必需的,反正如果编译的时候报错就根据错误继续安装。感觉是列不列出这些 package 的效果都差不多。这里先记录一下。

2.编译流程

  • 执行 configure 脚本

cpython# ./configure 

configure 文件是 shell 脚本。执行 configure 脚本的作用是让 autoconf 在系统中搜索 CPython 需要的库,并将它们的路径复制到Makefile 文件中。执行 ./configure 命令会在 cpython 目录下生成一个 Makefile 文件。

  • 编译

make -j$(nproc)

-j:job的缩写, ( n p r o c ) :指定电脑的核数作为 j o b 数,提升编译速度。执行 m a k e − j (nproc):指定电脑的核数作为 job 数,提升编译速度。执行 make -j (nproc):指定电脑的核数作为job数,提升编译速度。执行makej(nproc) 命令会得到一个 python 可执行文件。

  • 安装

make altinstall

3.关于 confiure 的一点说明

p47, To compile CPython on Linux, you first need to download and install make, gcc, configure, and pkgconfig.

这这句话中,make、gcc、pkgconfig 是tool,configure 是 cpython 目录下的一个文件。configure 本来就在项目里面,不知道作者为什么要说 download and install configure,真的不严谨。

二、英语总结(生词:0)

无。

关于英语的注解同步更新汇总到 https://github.com/codists/English-In-CS-Books 仓库。

三、其它

Compiling CPython 章节简评:本章讲编译流程,稍显啰嗦,也没有什么新奇的见解。

四、参考资料

1. 编程

(1) Anthony Shaw,《CPython Internals》:https://book.douban.com/subject/35405785/

2. 英语

(1) Etymology Dictionary:https://www.etymonline.com

(2) Cambridge Dictionary:https://dictionary.cambridge.org

欢迎搜索及关注:编程人(a_codists)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/66554.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Redis】简介|优点|使用场景|为什么Redis快

目录 一、简介 二、特性(优点) 三、使用场景 一、简介 内存中存储数据的中间件,用于数据库,数据缓存,在分布式系统中能够大展拳脚 中间件:应用程序可以直接从 Redis 中获取数据,而不必频繁地…

UI自动化测试框架playwright--初级入门

一、背景:UI自动化的痛点: 1、设计脚本耗时: 需要思考要如何模拟用户的操作,如何触发页面的事件,还要思考如何设计脚本,定位和操作要交互的元素、路径、位置,再编写代码逻辑,往复循…

不同方式获取音频时长 - python 实现

DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。 需要更多数据资源和技术解决方案,知识星球: “DataBall - X 数据球(free)” -------------------------------------------------------------…

数学建模入门——建模流程

摘要:本文介绍了数学建模的一般流程概述。 目录 一、前言 二、数据预处理 三、描述性统计分析 四、模型建立 五、模型评价 一、前言 本文将为想要入门数学建模的同学讲述数学建模的一般流程。但数学建模流程并非一成不变。虽有大致步骤,像分析问题、…

人工智能及深度学习的一些题目(三)

1、【填空题】 使用RNNCTC模型进行语音识别,在产生预测输出时,对于输入的音频特征序列通过网络预测产生对应的字母序列,可以使用( beamsearch )算法进行最优路径搜索。 2、【填空题】 逻辑回归模型属于有监督学习中的&…

Linux-Ubuntu之SPI串行通信陀螺仪和加速度计

Linux-Ubuntu之SPI串口通信陀螺仪和加速度计 一,SPI通信原理二,ICM-20608六轴传感器控制三,代码1.小tip 一,SPI通信原理 SPI:串行全双工通信,最高能达到百MHZ,通常一个主设备跟多个从设备&…

【从零开始入门unity游戏开发之——unity篇04】unity6基础入门 —— 新建项目模板的选择(渲染管线相关的知识点)

文章目录 前言一、渲染管线相关知识1、什么是渲染管线(Render Pipeline)?2、渲染管线的历史背景3、什么是 Scriptable Render Pipeline(SRP)?4、Unity三种渲染管线4.1 **内置渲染管线(Built-in …

AI也会犯错

一、缘起 1.1 问题的发现 AI模型在处理数值比较问题时,出现了一个有趣的现象:当被问到“9.9”和“9.11”哪个更大时,一些AI模型给出了错误的答案,认为“9.9”大于“9.11”。这一问题最初是由 Riley Goodside 发现的,…

Telnet工具的使用

Mac 下载安装,双击打开Windows 默认自带,但需要开启使用,控制面板->启用或关闭windows功能->Telnet客户端 管理员身份启动终端,输入telnet。远程连接 telnet ip 端口号 #看到输出后再回车一次调用服务 首先明确项目中有哪些…

Python的Matplotlib库应用(超详细教程)

目录 一、环境搭建 1.1 配置matplotlib库 1.2 配置seaborn库 1.3 配置Skimage库 二、二维图像 2.1 曲线(直线)可视化 2.2 曲线(虚线)可视化 2.3 直方图 2.4 阶梯图 三、三维图像 3.1 3D曲面图 3.2 3D散点图 3.3 3D散…

一个个顺序挨着来 - 责任链模式(Chain of Responsibility Pattern)

责任链模式(Chain of Responsibility Pattern) 责任链模式(Chain of Responsibility Pattern)责任链模式(Chain of Responsibility Pattern)概述责任链结构图责任链模式概述责任链模式涉及的角色 talk is c…

Laravel 新 WebSocket 服务 Reverb 使用指南

旧篇 > Laravel/Lumen 中使用 Echo Socket.IO-Client 实现网页即时通讯广播 https://blog.csdn.net/maxsky/article/details/130394420 已过时 与时俱进,Laravel 官方在 2024 年 7 月发布了 laravel/reverb 包的正式版,因为之前使用的 laravel-echo-…

WEB攻防-通用漏洞_文件上传_黑白盒审计流程

目录 前置知识点 Finecms-CMS文件上传 ​编辑 Cuppa-Cms文件上传 Metinfo-CMS 文件上传 前置知识点 思路: 黑盒就是寻找一切存在文件上传的功能应用 1 、个人用户中心是否存在文件上传功能 2 、后台管理系统是否存在文件上传功能 3 、字典目录扫描探针文件上传构…

Agentic RAG 解释

RAG(检索增强生成)通过提供来自外部知识源的相关背景来帮助提高 LLM 答案的准确性和可靠性。 Agentic RAG 是高级 RAG 版本,它使用 AI 代理来更加自主地行动。 Agentic RAG 执行以下操作 查询理解、分解和重写检索策略选择知识库管理结果综…

apex安装

安装过程复杂曲折,网上说的很多办法,貌似成功了,实际还是没起作用。 先说成功过程,执行下面命令,安装成功(当然,前提是你要先配置好编译环境): (我的环境&a…

基于FPGA的出租车里程时间计费器

基于FPGA的出租车里程时间计费器 功能描述一、系统框图二、verilog代码里程增加模块时间增加模块计算价格模块上板视频演示 总结 功能描述 (1);里程计费功能:3公里以内起步价8元,超过3公里后每公里2元,其中…

jdk8升级JDK21(Springboot2.7.18升级Springboot3.4.0)

目录 背景: 一、maven升级 二、代码改造 2.1 javax替换为jakarta 2.2 swagger2升级swagger3相关更新 2.2.1 新增SpringDocConfig配置类 2.2.2 全局代码更新 2.2.3 全局代码替换(普通正则替换) 2.3 Mybatis Plus升级 2.4 logback.xm…

AI赋能跨境电商:魔珐科技3D数字人破解出海痛点

跨境出海进入狂飙时代,AI应用正在深度渗透并重塑着跨境电商产业链的每一个环节,迎来了发展的高光时刻。生成式AI时代的大幕拉开,AI工具快速迭代,为跨境电商行业的突破与飞跃带来了无限可能性。 由于跨境电商业务自身特性鲜明&…

【HarmonyOS NEXT】鸿蒙应用实现屏幕录制详解和源码

【HarmonyOS NEXT】鸿蒙应用实现屏幕录制详解和源码 一、前言 官方文档关于屏幕录制的API和示例介绍获取简单和突兀。使用起来会让上手程度变高。所以特意开篇文章,讲解屏幕录制的使用。官方文档参见:使用AVScreenCaptureRecorder录屏写文件(ArkTS) 二…

Android - NDK:编译可执行程序在android设备上运行

在android开发中,调试时会把C代码直接编译成可执行程序,运行在android设备上以确认其功能是否正常。 1、基于NDK编译可执行文件 2、push到 /data/local/tmp目录下 3、设置权限,执行。 ndk工程中build.gradle设置 groovy plugins {id com.a…