coLinux日記

coLinuxはフリーソフトを種として、よろずのシステムとぞなれりける。

Raspberry Pi に Python 3.12.5 をインストールする

2024-08-16 17:04:26 | Python
2024年8月6日(日本時間8月7日)に Python 3.12.5 がリリースされました。

https://www.python.org/downloads/release/python-3125/
「Python 3.12 は Python プログラミング言語の最新メジャー リリースであり、多くの新機能と最適化が含まれています。 3.12.5 は最新のメンテナンス リリースで、3.12.4 以降の 250 を超えるバグ修正、ビルドの改善、ドキュメントの変更が含まれています。

このバージョンの Python 3.12 には、デフォルトで pip 24.2 も付属しています。ただし、古い macOS バージョンとの互換性がないため、macOS 10.9 ~ 10.12 では、インストール プロセス中 (証明書のインストール手順)、pip のバージョンが 24.1.2 にダウングレードされます。詳細については、インストーラの ReadMe とこの件に関する pip の問題を参照してください。 10.13 より古いバージョンの macOS は 2019 年以降 Apple によってサポートされておらず、それらのサポートを維持することがますます困難になっています。このリリースの 3.12 では引き続きこれらをサポートしていますが、将来の 3.12 リリースでは macOS 10.12 以前のサポートを中止せざるを得なくなる可能性があります。 (Python 3.13 ではすでにサポートが終了しています。)」
(DeepL 翻訳)

最後の、Python 3.13 ですが、10月頃に公開されるようです。楽しみですね。

早速、こちらの Raspberry Pi にインストールしてみました。

入手したファイルは、
Python-3.12.5.tar.xz
Python-3.12.5.tar.xz.asc

です。 "Public key servers" で検索して、
7169605f62c751356d054a26a821e680e5fa6305.asc
を得て、

$ gpg --import 7169605f62c751356d054a26a821e680e5fa6305.asc
$
$ gpg --verify Python-3.12.5.tar.xz.asc
gpg: 署名されたデータが'Python-3.12.5.tar.xz'にあると想定します
gpg: 2024年08月07日 05時32分27秒 JSTに施された署名
gpg: RSA鍵7169605F62C751356D054A26A821E680E5FA6305を使用
gpg: "Thomas Wouters <thomas@python.org>"からの正しい署名 [不明の]
gpg: 別名"Thomas Wouters <thomas@xs4all.nl>" [不明の]
gpg: 別名"Thomas Wouters <twouters@google.com>" [不明の]
gpg: 別名"Thomas Wouters <thomas.wouters.prive@gmail.com>" [不明の]
gpg: 別名"Thomas Wouters <thomaswout@gmail.com>" [不明の]
gpg: *警告*: この鍵は信用できる署名で証明されていません!
gpg: この署名が所有者のものかどうかの検証手段がありません。
主鍵フィンガープリント: 7169 605F 62C7 5135 6D05 4A26 A821 E680 E5FA 6305
$


キーサーバから入手した鍵を証明するものを入手していないのでこのように表示されますが、この結果とMD5 Sum が、

$ md5sum Python-3.12.5.tar.xz;echo 02c7d269e077f4034963bba6befdc715
02c7d269e077f4034963bba6befdc715 Python-3.12.5.tar.xz
02c7d269e077f4034963bba6befdc715
$


と、一致しているので問題なしとしました。

前回のように make します。例によって1時間くらいかかるので気長に待ちます。

$ tar xvf Python-3.12.5.tgz
$ cd Python-3.12.5
$ ./configure --prefix=/usr/local/python --enable-optimization --with-readline --enable-shared
$ make

# make install


以上で、インストールは完了です。実際に動作させてみます。

$ which python3
/usr/local/python/bin/python3

$ python3
Python 3.12.5 (main, Aug 16 2024, 12:49:15) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

$ pip3 --version
pip 24.2 from /usr/local/python/lib/python3.12/site-packages/pip (python 3.12)
$


無事に、Python3 3.12.5 になりました。

ついでにインストールしたばかりの 3.12.5 で、ちょっと気になった yield でリストを返す事を試してみました。

>>> a = [1]
>>> a
[1]
>>> a.append(2)
>>> a
[1, 2]
>>> a.append(3)
>>> a
[1, 2, 3]
>>>


を利用して、無限にリストの要素数を増やしていくジェネレータ関数を作ってみます。

>>> def test_list():
...       number = 1
...       a = [number]
...       while True:
...           yield a
...           number += 1
...           a.append(number)
...
>>>


この関数で生成されたジェネレータイテレータを変数 data に代入します。

>>> data = test_list()
>>> data
<generator object test_list at 0xf7573570>


作成したイテレータ data から next() でメンバーを一つずつ得てみます。

>>> next(data)
[1]
>>> next(data)
[1, 2]
>>> next(data)
[1, 2, 3]
>>> next(data)
[1, 2, 3, 4]
>>>


yield はリストも返せる事が分かったので、これは色々使い道がありそうですね。

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« SimplePrograms で Python を... | トップ | SimplePrograms で Python を... »
最新の画像もっと見る

コメントを投稿

Python」カテゴリの最新記事