Глава 1. Начинаем работать с исходным кодом CPython

Когда вы набираете python в своей консоли или устанавливаете дистрибутив Pytgon с Python.org вы запускаете CPython. CPython это одна из множества реализаций Python сопровождаемая и пишущаяся различными командами разработчиков. Некоторыми из альтернатив, о которых вы могли слышать, это PyPy, Cython и Jython.

Уникальность CPython состоит в том, что он содержит как среду выполнения, так и спецификацию совместно используемого языка программирования, которую применяют все прочие реализации Python. CPython это официальная или справочная реализация Python.

Собственно Спецификация языка Python это тот документ, который описывает язык Python. Например, она декларирует, что assert это зарезервированное ключевой слово и что [] применяются для индексации, расщепления и создания пустых списков.

Задумайтесь о тех функциональных возможностях, которые вы ожидаете от своего дистрибутива Python:

  • После того как вы набираете python без некого файла или модуля, это снабжает вас интерактивным приглашением на ввод (REPL).

  • Вы можете импортировать встроенные модули, такие как json, csv и collections из имеющейся стандартной библиотеки.

  • Вы можете устанавливать пакеты из Интернета при помощи pip.

  • Вы можете тестировать свои приложения при помощи встроенной библиотеки unittest.

Всё это части вашего дистрибутива CPython. Он содержит намного больше чем просто компилятор.

В этой книге мы исследуем различные части дистрибутива CPython:

  • Спецификацию самого языка программирования

  • Его компилятор

  • Модули его стандартной библиотеки

  • Типы его ядра

  • Его комплект тестирования

Что у нас в исходном коде?

Исходный код дистрибутива CPython поставляется совместно с целым диапазоном инструментов, библиотек и компонентов, которые вы исследуете в этой книге.

[Замечание]Замечание

Эта книга нацелена на версию 3.9 исходного кода CPython.

Чтобы выгрузить копию исходного кода CPython, вы можете воспользоваться git чтобы вытянуть самую последнюю версию:


$ git clone --branch 3.9 https://github.com/python/cpython
$ cd cpython
		

Все примеры в данной книге основываются на Python версии 3.9.

[Совет]Совет

Важно переключиться на ветку 3.9. Основная ветка меняется ежечасно. Многие примеры и упражнения из данной книги вряд ли подойдут для главной ветки.

[Замечание]Замечание

Если у вас не доступен Git, вы можете установить его с git-scm.com. В качестве альтернативы вы можете выгрузить файл ZIP исходного кода CPython напрямую с вебсайта GitHub.

Если вы выгрузили этот исходный код в виде файла ZIP, тогда он не будет содержать никаких истории, тегов или ветвей.

Внутри только что выгруженного каталога cpython вы обнаружите следующие подкаталоги:

 

Рисунок 1-1



Далее вы настроите свою среду разработки.