8.50. Python-3.10.6

Пакет Python 3 содержит среду разработчика Python. Его можно использовать для объектно-ориентированного программирования, написания скриптов, прототипирования больших программ или разработки собственных приложений.

Приблизительное время сборки: 3.4 SBU
Требуемое дисковое пространство: 283 MB

8.50.1. Установка пакета Python 3

Подготовьте Python к компиляции:

./configure --prefix=/usr        \
            --enable-shared      \
            --with-system-expat  \
            --with-system-ffi    \
            --enable-optimizations

Значение параметров настройки:

--with-system-expat

Этот параметр выполняет линковку с системной версией Expat.

--with-system-ffi

Этот параметр выполняет линковку с системной версией libffi.

--enable-optimizations

Этот параметр обеспечивает стабильную, но ресурсозатратную оптимизацию.

Скомпилируйте пакет:

make

Запускать тесты на этом этапе не рекомендуется. Известно, что тесты зависают на неопределенный срок в неполной среде LFS. При желании тесты можно запустить повторно в конце этой главы или при переустановке Python 3 в BLFS. Чтобы запустить тесты, выполните команду make test.

Установите пакет:

make install

В некоторых местах мы используем команду pip3 для установки программ и модулей Python 3 от имени пользователя root. Это противоречит рекомендации разработчиков Python устанавливать пакеты в виртуальную среду или домашний каталог обычного пользователя (путем запуска pip3 от имени этого пользователя). Поэтому при использовании pip3 от имени пользователя root появляется многострочное предупреждение. Основная причина этой рекомендации — избежать конфликта с системным менеджером пакетов (например, dpkg), но в LFS нет общесистемного менеджера пакетов, так что это не проблема. pip3 будет пытаться проверять наличие новой версии при каждом запуске. Поскольку разрешение доменных имен в среде chroot LFS еще не настроено, он не сможет проверить наличие новой версии и выдаст предупреждение. Как только мы загрузим систему LFS и настроим сетевое подключение, pip3 выдаст предупреждение, сообщающее пользователю о необходимости обновить его с помощью предварительно собранного whl-файла в PyPI. Согласно LFS, pip3 является частью Python3, поэтому его не следует обновлять отдельно, кроме того, обновление из whl-файла не соответствует цели проекта — собрать систему Linux из исходного кода, поэтому предупреждение о новой версии pip3 следует игнорировать. По желанию отключите это предупреждение, выполнив следующие команды:

cat > /etc/pip.conf << EOF
[global]
root-user-action = ignore
disable-pip-version-check = true
EOF
[Важно]

Важно

В LFS и BLFS мы собираем и устанавливаем модули Python с помощью команды pip3. Позаботьтесь о том, чтобы команды pip3 install в обеих книгах выполнялись от имени пользователя root, если только они не предназначены для виртуальной среды Python. Запуск pip3 install от имени пользователя без полномочий root может показаться нормальным, но это приведет к тому, что установленный модуль будет недоступен для других пользователей.

Команда pip3 install по умолчанию не приведёт к переустановке уже установленного модуля. Чтобы использовать команду pip3 install для обновления модуля (например, с meson-0.61.3 до meson-0.62.0), добавьте параметр --upgrade в командную строку. Если по какой-то причине необходимо понизить версию модуля или переустановить ту же версию, используйте параметр --force-reinstall --no-deps.

По желанию установите предварительно отформатированную документацию:

install -v -dm755 /usr/share/doc/python-3.10.6/html

tar --strip-components=1  \
    --no-same-owner       \
    --no-same-permissions \
    -C /usr/share/doc/python-3.10.6/html \
    -xvf ../python-3.10.6-docs-html.tar.bz2

Значение команд установки документации:

--no-same-owner и --no-same-permissions

Проверяет, что установленные файлы имеют корректные права и владельца файлов. Использование tar без этих параметров приведет к установке файлов с правами пользователя создававшего пакет.

8.50.2. Содержимое пакета Python 3

Установленные программы: 2to3, idle3, pip3, pydoc3, python3, и python3-config
Установленные библиотеки: libpython3.10.so и libpython3.so
Созданные каталоги: /usr/include/python3.10, /usr/lib/python3, и /usr/share/doc/python-3.10.6

Краткое описание

2to3

программа на Python, которая читает файлы написанные на Python 2.x, применяет к ним серию изменений и переводит их в валидный код Python 3.x.

idle3

скрипт-обертка, который открывает графический редактор с поддержкой Python. Для запуска этого скрипта, перед установкой Python необходимо установить Tk, чтобы модуль Tkinter Python был собран.

pip3

Установщик пакетов для Python. Вы можете использовать pip для установки пакетов из каталога PyPI (Python Package Index) и других источников.

pydoc3

инструмент документации Python

python3

интерпретируемый, интерактивный, объектно-ориентированный язык программирования