summaryrefslogtreecommitdiff
path: root/lfs-12.0-sysv/chapter08/Python.html
diff options
context:
space:
mode:
authorSn4il <sn4il@thedroth.rocks>2024-01-10 16:57:29 +0300
committerSn4il <sn4il@thedroth.rocks>2024-01-10 16:57:29 +0300
commitc4d43142181a45b849a15cf8ec5ebe61cea33897 (patch)
tree459a90d19e6f1ece81fbf364c1b5292214d99615 /lfs-12.0-sysv/chapter08/Python.html
parenta044ba7b1561a513e33de0b7c1876aaa401a26d7 (diff)
downloadsn4il-site-c4d43142181a45b849a15cf8ec5ebe61cea33897.tar.gz
sn4il-site-c4d43142181a45b849a15cf8ec5ebe61cea33897.zip
LFS 12 mirror
Diffstat (limited to 'lfs-12.0-sysv/chapter08/Python.html')
-rw-r--r--lfs-12.0-sysv/chapter08/Python.html394
1 files changed, 394 insertions, 0 deletions
diff --git a/lfs-12.0-sysv/chapter08/Python.html b/lfs-12.0-sysv/chapter08/Python.html
new file mode 100644
index 0000000..097343b
--- /dev/null
+++ b/lfs-12.0-sysv/chapter08/Python.html
@@ -0,0 +1,394 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
+ <title>
+ 8.51. Python-3.11.4
+ </title>
+ <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" />
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1" />
+ <link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
+ "text/css" media="print" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ </head>
+ <body class="lfs" id="lfs-12.0">
+ <div class="navheader">
+ <h4>
+ Линукс с нуля - Версия 12.0
+ </h4>
+ <h3>
+ Глава 8. Установка базового системного программного обеспечения
+ </h3>
+ <ul>
+ <li class="prev">
+ <a accesskey="p" href="libffi.html" title="Libffi-3.4.4">Пред.</a>
+ <p>
+ Libffi-3.4.4
+ </p>
+ </li>
+ <li class="next">
+ <a accesskey="n" href="flit-core.html" title=
+ "Flit-Core-3.9.0">След.</a>
+ <p>
+ Flit-Core-3.9.0
+ </p>
+ </li>
+ <li class="up">
+ <a accesskey="u" href="chapter08.html" title=
+ "Глава 8. Установка базового системного программного обеспечения">Наверх</a>
+ </li>
+ <li class="home">
+ <a accesskey="h" href="../index.html" title=
+ "Линукс с нуля - Версия 12.0">Начало</a>
+ </li>
+ </ul>
+ </div>
+ <div class="wrap" lang="en" xml:lang="en">
+ <h1 class="sect1">
+ <a id="ch-system-Python" name="ch-system-Python"></a>8.51.
+ Python-3.11.4
+ </h1>
+ <div class="package" lang="en" xml:lang="en">
+ <p>
+ Пакет Python 3 содержит среду разработчика Python. Его можно
+ использовать для объектно-ориентированного программирования,
+ написания скриптов, прототипирования больших программ и разработка
+ целых приложений. Python — это интерпретируемый язык
+ программирования.
+ </p>
+ <div class="segmentedlist">
+ <div class="seglistitem">
+ <div class="seg">
+ <strong class="segtitle">Приблизительное время сборки:</strong>
+ <span class="segbody">1.9 SBU</span>
+ </div>
+ <div class="seg">
+ <strong class="segtitle">Требуемое дисковое
+ пространство:</strong> <span class="segbody">370 MB</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="installation" lang="en" xml:lang="en">
+ <h2 class="sect2">
+ 8.51.1. Установка пакета Python 3
+ </h2>
+ <p>
+ Подготовьте Python к компиляции:
+ </p>
+ <pre class="userinput"><kbd class=
+ "command">./configure --prefix=/usr \
+ --enable-shared \
+ --with-system-expat \
+ --with-system-ffi \
+ --enable-optimizations</kbd></pre>
+ <div class="variablelist">
+ <p class="title">
+ <strong>Значение параметров настройки:</strong>
+ </p>
+ <dl class="variablelist">
+ <dt>
+ <span class="term"><em class=
+ "parameter"><code>--with-system-expat</code></em></span>
+ </dt>
+ <dd>
+ <p>
+ Этот параметр выполняет линковку с системной версией
+ <span class="application">Expat</span>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term"><em class=
+ "parameter"><code>--with-system-ffi</code></em></span>
+ </dt>
+ <dd>
+ <p>
+ Этот параметр выполняет линковку с системной версией
+ <code class="filename">libffi.so</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term"><em class=
+ "parameter"><code>--enable-optimizations</code></em></span>
+ </dt>
+ <dd>
+ <p>
+ Этот параметр позволяет выполнить обширные, но отнимающие
+ много времени, действия по оптимизации. Интерпретатор
+ собирается дважды; тесты, выполненные при первой сборке,
+ используются для улучшения финальной версии.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ <p>
+ Скомпилируйте пакет:
+ </p>
+ <pre class="userinput"><kbd class="command">make</kbd></pre>
+ <p>
+ Запускать тесты на этом этапе не рекомендуется. Известно, что тесты
+ зависают на неопределенный срок в неполной среде LFS. При желании
+ тесты можно запустить повторно в конце этой главы или при
+ переустановке Python 3 в BLFS. Чтобы запустить тесты, выполните
+ команду <span class="command"><strong>make test</strong></span>.
+ </p>
+ <p>
+ Установите пакет:
+ </p>
+ <pre class="userinput"><kbd class="command">make install</kbd></pre>
+ <p>
+ В некоторых местах книги, мы используем команду <span class=
+ "command"><strong>pip3</strong></span> для установки программ и
+ модулей Python 3 от имени пользователя <code class=
+ "systemitem">root</code>. Это противоречит рекомендации
+ разработчиков Python: устанавливать пакеты в виртуальную среду или
+ домашний каталог обычного пользователя (путем запуска <span class=
+ "command"><strong>pip3</strong></span> от имени этого
+ пользователя). Поэтому всякий раз при использовании <span class=
+ "command"><strong>pip3</strong></span> от имени пользователя
+ <code class="systemitem">root</code> появляется многострочное
+ предупреждение.
+ </p>
+ <p>
+ Основная причина этой рекомендации — избежать конфликта с системным
+ менеджером пакетов (например, <span class=
+ "command"><strong>dpkg</strong></span>), но в LFS нет
+ общесистемного менеджера пакетов, так что это не проблема. Кроме
+ того, <span class="command"><strong>pip3</strong></span> будет
+ пытаться проверять наличие новой версии при каждом запуске.
+ Поскольку разрешение доменных имен в среде chroot LFS еще не
+ настроено, он не сможет проверить наличие новой версии и выдаст
+ предупреждение.
+ </p>
+ <p>
+ Как только мы загрузим систему LFS и настроим сетевое подключение,
+ <span class="command"><strong>pip3</strong></span> выдаст
+ предупреждение, сообщающее пользователю о необходимости обновить
+ его с помощью предварительно собранного whl-файла в PyPI (всякий
+ раз, когда будет доступна новая версия). Но LFS считает
+ <span class="command"><strong>pip3</strong></span> частью Python3,
+ поэтому его не следует обновлять отдельно. Кроме того, обновление
+ из whl-файла не соответствует цели проекта — собрать систему Linux
+ из исходного кода, поэтому предупреждение о новой версии
+ <span class="command"><strong>pip3</strong></span> следует
+ игнорировать. По желанию, вы можете отключить все предупреждение,
+ создав следующий файл конфигурации:
+ </p>
+ <pre class="userinput"><kbd class=
+ "command">cat &gt; /etc/pip.conf &lt;&lt; EOF
+<code class="literal">[global]
+root-user-action = ignore
+disable-pip-version-check = true</code>
+EOF
+</kbd></pre>
+ <div class="admon important">
+ <img alt="[Важно]" src="../images/important.png" />
+ <h3>
+ Важно
+ </h3>
+ <p>
+ В LFS и BLFS мы собираем и устанавливаем модули Python с помощью
+ команды <span class="command"><strong>pip3</strong></span>.
+ Убедитесь, что команда <span class="command"><strong>pip3
+ install</strong></span> в обеих книгах запускаются от имени
+ пользователя <code class="systemitem">root</code> (если только
+ она не для виртуальной среды Python). Запуск <span class=
+ "command"><strong>pip3 install</strong></span> от имени
+ пользователя без полномочий <code class="systemitem">root</code>
+ может показаться нормальным, но это приведет к тому, что
+ установленный модуль будет недоступен для других пользователей.
+ </p>
+ <p>
+ Команда <span class="command"><strong>pip3
+ install</strong></span> по умолчанию не приведёт к автоматической
+ переустановке уже установленного модуля. Чтобы использовать
+ команду <span class="command"><strong>pip3
+ install</strong></span> для обновления модуля (например, с
+ meson-0.61.3 до meson-0.62.0), добавьте параметр <em class=
+ "parameter"><code>--upgrade</code></em> в командную строку. Если
+ по какой-то причине необходимо понизить версию модуля или
+ переустановить ту же версию, используйте параметр <em class=
+ "parameter"><code>--force-reinstall --no-deps</code></em>.
+ </p>
+ </div>
+ <p>
+ По желанию установите предварительно отформатированную
+ документацию:
+ </p>
+ <pre class="userinput"><kbd class=
+ "command">install -v -dm755 /usr/share/doc/python-3.11.4/html
+
+tar --strip-components=1 \
+ --no-same-owner \
+ --no-same-permissions \
+ -C /usr/share/doc/python-3.11.4/html \
+ -xvf ../python-3.11.4-docs-html.tar.bz2</kbd></pre>
+ <div class="variablelist">
+ <p class="title">
+ <strong>Значение команд установки документации:</strong>
+ </p>
+ <dl class="variablelist">
+ <dt>
+ <span class="term"><code class="option">--no-same-owner</code>
+ и <code class="option">--no-same-permissions</code></span>
+ </dt>
+ <dd>
+ <p>
+ Проверяет, что установленные файлы имеют корректные права и
+ владельца файлов. Использование <span class=
+ "application">tar</span> без этих параметров приведет к
+ установке файлов с правами пользователя создавшего пакет.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="content" lang="en" xml:lang="en">
+ <h2 class="sect2">
+ <a id="contents-python" name="contents-python"></a>8.51.2.
+ Содержимое пакета Python 3
+ </h2>
+ <div class="segmentedlist">
+ <div class="seglistitem">
+ <div class="seg">
+ <strong class="segtitle">Установленные программы:</strong>
+ <span class="segbody">2to3, idle3, pip3, pydoc3, python3 и
+ python3-config</span>
+ </div>
+ <div class="seg">
+ <strong class="segtitle">Установленные библиотеки:</strong>
+ <span class="segbody">libpython3.11.so и libpython3.so</span>
+ </div>
+ <div class="seg">
+ <strong class="segtitle">Созданные каталоги:</strong>
+ <span class="segbody">/usr/include/python3.11, /usr/lib/python3
+ и /usr/share/doc/python-3.11.4</span>
+ </div>
+ </div>
+ </div>
+ <div class="variablelist">
+ <h3>
+ Краткое описание
+ </h3>
+ <table border="0" class="variablelist">
+ <colgroup>
+ <col align="left" valign="top" />
+ <col />
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>
+ <p>
+ <a id="python-2to3" name="python-2to3"></a><span class=
+ "term"><span class=
+ "command"><strong>2to3</strong></span></span>
+ </p>
+ </td>
+ <td>
+ <p>
+ программа на <span class="application">Python</span>,
+ которая читает файлы написанные на <span class=
+ "application">Python 2.x</span>, применяет к ним серию
+ изменений и переводит их в валидный код <span class=
+ "application">Python 3.x</span>.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <a id="idle3" name="idle3"></a><span class=
+ "term"><span class=
+ "command"><strong>idle3</strong></span></span>
+ </p>
+ </td>
+ <td>
+ <p>
+ скрипт-обертка, который открывает графический редактор с
+ поддержкой <span class="application">Python</span>. Для
+ запуска этого скрипта, перед установкой Python необходимо
+ установить <span class="application">Tk</span>, чтобы
+ модуль Tkinter Python был собран.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <a id="pip3" name="pip3"></a><span class=
+ "term"><span class=
+ "command"><strong>pip3</strong></span></span>
+ </p>
+ </td>
+ <td>
+ <p>
+ Установщик пакетов для Python. Вы можете использовать pip
+ для установки пакетов из каталога PyPI (Python Package
+ Index) и других источников.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <a id="pydoc3" name="pydoc3"></a><span class=
+ "term"><span class=
+ "command"><strong>pydoc3</strong></span></span>
+ </p>
+ </td>
+ <td>
+ <p>
+ инструмент документации <span class=
+ "application">Python</span>
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <a id="python3" name="python3"></a><span class=
+ "term"><span class=
+ "command"><strong>python3</strong></span></span>
+ </p>
+ </td>
+ <td>
+ <p>
+ это интерпретатор для Python, интерпретируемый,
+ интерактивный, объектно-ориентированный язык
+ программирования
+ </p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </div>
+ <div class="navfooter">
+ <ul>
+ <li class="prev">
+ <a accesskey="p" href="libffi.html" title="Libffi-3.4.4">Пред.</a>
+ <p>
+ Libffi-3.4.4
+ </p>
+ </li>
+ <li class="next">
+ <a accesskey="n" href="flit-core.html" title=
+ "Flit-Core-3.9.0">След.</a>
+ <p>
+ Flit-Core-3.9.0
+ </p>
+ </li>
+ <li class="up">
+ <a accesskey="u" href="chapter08.html" title=
+ "Глава 8. Установка базового системного программного обеспечения">Наверх</a>
+ </li>
+ <li class="home">
+ <a accesskey="h" href="../index.html" title=
+ "Линукс с нуля - Версия 12.0">Начало</a>
+ </li>
+ </ul>
+ </div>
+ </body>
+</html>