From 2203e654b389586650d553251b04544a34f189bf Mon Sep 17 00:00:00 2001 From: Sn4il Date: Mon, 2 Sep 2024 15:54:35 +0300 Subject: LFS 12.2 --- lfs-12.2-sysv/chapter08/Python.html | 395 ++++++++++++++++++++++++++++++++++++ 1 file changed, 395 insertions(+) create mode 100644 lfs-12.2-sysv/chapter08/Python.html (limited to 'lfs-12.2-sysv/chapter08/Python.html') diff --git a/lfs-12.2-sysv/chapter08/Python.html b/lfs-12.2-sysv/chapter08/Python.html new file mode 100644 index 0000000..c85ec03 --- /dev/null +++ b/lfs-12.2-sysv/chapter08/Python.html @@ -0,0 +1,395 @@ + + + + + + 8.52. Python-3.12.5 + + + + + + + + +

+ 8.52. + Python-3.12.5 +

+
+
+

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

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

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

+

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

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

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

+
+
+ --with-system-expat +
+
+

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

+
+
+ --enable-optimizations +
+
+

+ Этот параметр позволяет выполнить обширные, но отнимающие + много времени, действия по оптимизации. Интерпретатор + собирается дважды; тесты, выполненные при первой сборке, + используются для улучшения финальной версии. +

+
+
+
+

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

+
make
+

+ Известно, что некоторые тесты Python иногда зависают на + неопределенный срок. Чтобы протестировать пакет, запустите набор + тестов, установив 2-минутный лимит времени для каждого тестового + примера: +

+
make test TESTOPTS="--timeout 120"
+

+ На медленной системе вам может потребоваться ещё увеличить + ограничение по времени, и 1 SBU (измеряется при сборке Binutils - + Проход 1 с использованием одного ядра ЦП) должно быть достаточно. В + процессе выполнения некоторых тестов бывают сбои, поэтому набор + тестов автоматически перезапускает неудачно завершённые тесты. Если + сначала тест не пройден, но пройден при повторном запуске, его + следует считать пройденным. +

+

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

+
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.12.5/html
+
+tar --no-same-owner \
+    -xvf ../python-3.12.5-docs-html.tar.bz2
+cp -R --no-preserve=mode python-3.12.5-docs-html/* \
+    /usr/share/doc/python-3.12.5/html
+
+

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

+
+
+ --no-same-owner + (tar) и --no-preserve=mode + (cp) +
+
+

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

+
+
+
+
+
+

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

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

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

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ 2to3 +

+
+

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

+
+

+ idle3 +

+
+

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

+
+

+ pip3 +

+
+

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

+
+

+ pydoc3 +

+
+

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

+
+

+ python3 +

+
+

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

+
+
+
+
+ + + -- cgit v1.2.3