Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Внутри CPython гид по интерпретатору Python.pdf
Скачиваний:
6
Добавлен:
07.04.2024
Размер:
8.59 Mб
Скачать

 

Компиляция CPython на Windows    51

 

 

ЦЕЛЬ

НАЗНАЧЕНИЕ

recheck

Повторное выполнение configure c теми же параметрами, ко-

 

торые применялись в последний раз

smelly

Проверка того, что имена экспортируемых символических

 

имен начинаются с Py или _Py (см. PEP 7)

tags

Создание файла tags для vi

TAGS

Создание файла tags для Emacs

КОМПИЛЯЦИЯ CPYTHON НА WINDOWS

Существуют два способа компиляции двоичных файлов и библиотек CPython на Windows:

1.Компиляция из командной строки. Для этого варианта потребуется компилятор Microsoft Visual C++, входящий в поставку Visual Studio.

2.Прямая сборка через PCbuild pcbuild.sln в Visual Studio.

Вследующих разделах рассматриваются оба варианта.

Установка зависимостей

Как при компиляции из командной строки, так и через Visual Studio необходимо установить ряд дополнительных инструментов, библиотек и заголовков C.

В папке PCbuild находится файл .bat, автоматизирующий этот процесс. Откройте окно командной строки в PCbuild и выполните команду PCbuild get_externals.bat:

> get_externals.bat

Using py -3.7 (found 3.7 with py.exe)

Fetching external libraries...

Fetching bzip2-1.0.6...

Fetching sqlite-3.28.0.0...

Fetching xz-5.2.2...

Fetching zlib-1.2.11...

Fetching external binaries...

Fetching openssl-bin-1.1.1d...

Fetching tcltk-8.6.9.0...

Finished.

Теперь можно выполнить компиляцию из командной строки или Visual Studio.

Книги для программистов: https://t.me/booksforits

52    Компиляция CPython

Компиляция из командной строки

Чтобы выполнить компиляцию из командной строки, необходимо выбрать архитектуру процессора, для которого компилируется программа. По умолчанию используется архитектура win32, но вполне вероятно, что вам понадобится 64-разрядный двоичный файл (amd64).

Если вы занимаетесь отладкой, то отладочная сборка включает возможность установки точек останова в исходном коде. Чтобы включить отладочную сборку, добавьте параметр -c Debug для определения отладочной конфигурации.

По умолчанию build.bat загружает внешние зависимости, но поскольку этот шаг уже выполнен, выведется сообщение о пропуске загрузки:

> build.bat -p x64 -c Debug

Команда создает двоичный файл Python PCbuild amd64 python_d.exe. Запустите его прямо из командной строки:

> amd64\python_d.exe

Python 3.9 (tags/v3.9:9cf67522, Oct 5 2020, 10:00:00) [MSC v.1922 64 bit (AMD64)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>>

Теперь вы находитесь в REPL скомпилированного двоичного файла CPython.

Чтобы скомпилировать окончательный двоичный файл, используйте следующую команду:

> build.bat -p x64 -c Release

Команда создаст двоичный файл PCbuild amd64 python.exe.

ПРИМЕЧАНИЕ

Суффикс _d указывает,что CPython собран в отладочной конфигурации.

Двоичные файлы на Python.org скомпилированы в конфигурации про­ фильной оптимизации (PGO, Profile-Guided Optimization). За дополни­ тельной информацией о PGO обращайтесь к разделу «Профильная оп­ тимизация» в конце этой главы.

Книги для программистов: https://t.me/booksforits

Компиляция CPython на Windows    53

Аргументы

Для build.bat доступны следующие аргументы.

ФЛАГ

НАЗНАЧЕНИЕ

ОЖИДАЕМОЕ ЗНАЧЕНИЕ

-p

Архитектура процессора

x64, Win32 (по умолчанию), ARM, ARM64

-c

Конфигурация сборки

Release (по умолчанию), Debug,

 

 

PGInstrument или PGUpdate

-t

Цель сборки

Build (по умолчанию), Rebuild, Clean,

 

 

CleanAll

Флаги

Некоторые дополнительные флаги, которые могут использоваться с build.bat.

ФЛАГ

НАЗНАЧЕНИЕ

-v

Режим расширенного вывода: вывод информационных сообщений

 

в процессе сборки

-vv

Режим подробного расширенного вывода: вывод подробных со-

 

общений в процессе сборки

-q

Тихий режим: вывод только предупреждений и ошибок в процессе

 

сборки

-e

Загрузка и установка внешних зависимостей (по умолчанию)

-E

Отказ от загрузки и установки внешних зависимостей

--pgo

Сборка с профильной оптимизацией

--regen

Повторное генерирование всей грамматики и токенов (использует-

 

ся при обновлении языка)

Чтобы просмотреть полный список, выполните команду build.bat -h.

Компиляция из Visual Studio

В папке PCbuild находится файл решения Visual Studio PCbuild pcbuild.sln, предназначенный для сборки и анализа исходного кода CPython.

При загрузке файла решения вам будет предложено переопределить цель проектов внутри данного решения в соответствии с установленной версией

Книги для программистов: https://t.me/booksforits

54    Компиляция CPython

компилятора C/C++. Visual Studio также ориентируется на установленную версию Windows SDK.

Не забудьте заменить версию Windows SDK последней установленной версией. Набор инструментов платформы тоже должен иметь новейшую версию. Если вы пропустили это окно, щелкните правой кнопкой мыши на файле решения в окне Solutions and Projects и выберите команду Retarget Solution.

Перейдите к окну Build Configuration Manager. Убедитесь в том, что в выпадающем списке Active Solution Configuration выбран вариант Debug, а в списке Active Solution Platform — вариант x64 для 64-разрядной архитектуры процессора или win32 для 32-разрядной.

Затем соберите CPython комбинацией клавиш Ctrl+Shift+B или командой Build Build Solution. Если вы получите ошибки, сообщающие об отсутствии Windows SDK, убедитесь в том, что вы выбрали правильные настройки цели

вокне Re-target Solution. Также в меню Пуск должна быть папка Windows Kits,

вкоторой находится Windows Software Development Kit.

В первый раз сборка может занять десять минут и более. После завершения сборки могут появиться предупреждения, на которые можно не обращать внимания. Чтобы запустить отладочную версию CPython, нажмите F5; CPython запустит REPL в отладочном режиме:

Чтобы запустить сборку в окончательной версии, замените конфигурацию сборки Debug на Release в верхней строке меню и снова выполните команду Build Build Solution. Теперь у вас имеются как отладочная, так и окончательная версии двоичного файла CPython в папке PCbuild amd64.

Чтобы настроить Visual Studio для открытия REPL с окончательной или отладочной версией, выберите команду Tools Python Python Environments в верхнем меню. На панели Python Environments щелкните по кнопке Add Environment, а затем

Книги для программистов: https://t.me/booksforits

Компиляция CPython на Windows    55

выберите двоичный файл в нужной версии. Отладочный двоичный файл завершается суффиксом _d.exe (например, python_d.exe или pythonw_d.exe).

Вам стоит использовать отладочный двоичный файл — он содержит поддержку отладки в Visual Studio и пригодится вам в ходе чтения книги.

В окне Add Environment выберите интерпретатор python_d.exe в поле Interpreter Path и оконный интерпретатор pythonw_d.exe в поле Windowed Interpreter (optional):

Запустите сеанс REPL при помощи кнопки Open Interactive Window в окне Python Environments. Откроется REPL скомпилированной версии Python:

Книги для программистов: https://t.me/booksforits