8.50. Python-3.10.4

Python 3 パッケージは Python 開発環境を提供します。 オブジェクト指向プログラミング、スクリプティング、大規模プログラムのプロトタイピング、アプリケーション開発などに有用なものです。

概算ビルド時間: 4.3 SBU
必要ディスク容量: 275 MB

8.50.1. Python 3 のインストール

Python をコンパイルするための準備をします。

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

configure オプションの意味

--with-system-expat

本スイッチは、システムにインストールされている Expat をリンクすることを指示します。

--with-system-ffi

本スイッチは、システムにインストールされている libffi をリンクすることを指示します。

--enable-optimizations

本スイッチは安定的ではあるものの高くつく最適化を有効にします。

パッケージをコンパイルします。

make

この時点においてテスト実行することはお勧めしません。 部分的にしか仕上がっていない LFS 環境では安定せずハングすることがあります。 テストを必要とする場合は、本章を一番最後まで進めてから再度実行するか、あるいは BLFS において Python 3 をインストール際に行います。 そうではなくここでテスト実行をするなら make test を実行します。

パッケージをインストールします。

make install

いくつかの場面において Python 3 プログラムやモジュールをインストールする際には、全ユーザー向けのインストールを行うために root ユーザーになって pip3 コマンドを用いています。 このことは Python 開発者が推奨している、仮想環境内にて一般ユーザーにより(そのユーザーが pip3 を実行することで)パッケージビルドを行う方法とは相容れないものです。 これを行っているため、root ユーザーとして pip3 を用いると、警告メッセージが複数出力されます。 開発者がなぜその方法を推奨しているかというと、システムパッケージマネージャー(たとえば dpkg)などと衝突が発生するからです。 LFS ではシステムワイドなパッケージマネージャーを利用していないため、このことは問題となりません。 警告メッセージを省略したい場合は、以下のコマンドを実行します。

sed -e '/def warn_if_run_as_root/a\    return' \
    -i /usr/lib/python3.10/site-packages/pip/_internal/cli/req_command.py
[重要]

重要

LFS や BLFS においては通常、Python モジュールのビルドとインストールには pip3 コマンドを用いています。 この両ブックにおいて実行する pip3 install コマンドは、Python 仮想環境内でない場合には root ユーザーで実行するようにしてください。 root ユーザー以外によって pip3 install を実行しても問題なく動作するように見えるかもしれませんが、インストールしたモジュールが別のユーザーからはアクセスできない事態を作り出してしまいます。

pip3 install はデフォルトでは、すでにインストールされているモジュールを再インストールすることは行いません。 pip3 install コマンドを使ってモジュールのアップグレードを行う(たとえば meson-0.61.3 から meson-0.62.0 にするような場合)には、コマンドラインに --upgrade オプションを含めてください。 またモジュールのダウングレードや再インストールが必要となる理由が確実にあるのであれば、コマンドラインに --force-reinstall を含めて実行してください。

必要なら、整形済みドキュメントをインストールします。

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

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

ドキュメント install コマンドの意味

--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.4

概略説明

2to3

Python 2.x のソースコードを読み込み、種々の変更を行って Python 3.x 用の適正なソースコードに変換するための Python プログラムです

idle3

Python に特化した GUI エディターを起動するラッパースクリプト。 このスクリプトを実行するには、Python より前に Tk をインストールして、Python モジュールである Tkinter をビルドしておく必要があります。

pip3

Python のパッケージインストーラー。 この pip を使って Python Package Index などのインデックスサイトから各種パッケージをインストールできます。

pydoc3

Python ドキュメントツール。

python3

インタープリターであり、対話的なオブジェクト指向プログラミング言語。