《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的缩写,$(nproc):指定电脑的核数作为 job 数,提升编译速度。执行 make -j$(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)


codists
4 声望2 粉丝

Life is short, You need Python