Пакет 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 без этих параметров приведет к
установке файлов с правами пользователя создававшего пакет.