PEP719 で告知されたとおり、Python 3.13.0 が 2024-10-07 にリリースされました。
当ブログの以前の記事の通りの方法で、早速 Raspberry Pi にインストールしてみます。
まずは、ダウンロードして、チェックします。(例によって空白文字は適当です。)
$ wget http://www.python.org/ftp/python/3.13.0/Python-3.13.0.tar.xz
$ md5sum Python-3.13.0.tar.xz;echo 726e5b829fcf352326874c1ae599abaa
726e5b829fcf352326874c1ae599abaa Python-3.13.0.tar.xz
726e5b829fcf352326874c1ae599abaa
$
$ wget http://www.python.org/ftp/python/3.13.0/Python-3.13.0.tar.xz.asc
$ gpg --verify Python-3.13.0.tar.xz.asc
gpg: assuming signed data in 'Python-3.13.0.tar.xz'
gpg: Signature made Mon 07 Oct 2024 08:30:45 BST
gpg: using RSA key 7169605F62C751356D054A26A821E680E5FA6305
gpg: Good signature from "Thomas Wouters <thomas@python.org>" [unknown]
gpg: aka "Thomas Wouters <thomas@xs4all.nl>" [unknown]
gpg: aka "Thomas Wouters <twouters@google.com>" [unknown]
gpg: aka "Thomas Wouters <thomas.wouters.prive@gmail.com>" [unknown]
gpg: aka "Thomas Wouters <thomaswout@gmail.com>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 7169 605F 62C7 5135 6D05 4A26 A821 E680 E5FA 6305
$
10月7日にサインされていますね。
3.12.6 の時と同じように make してみます。
$ tar xvf Python-3.13.0.tar.xz
$ cd Python-3.13.0
$ ./configure --prefix=/usr/local/python --enable-optimizations --with-readline --enable-shared
$ make (52分かかりました。)
・・・・・・
Total duration: 6 min 52 sec
Total tests: run=9,361 skipped=201
Total test files: run=44/44
Result: SUCCESS
true
・・・・・・
The necessary bits to build these optional modules were not found:
_dbm
To find the necessary bits, look in configure.ac and config.log.
Checked 112 modules (33 built-in, 77 shared, 1 n/a on linux-aarch64, 0 disabled, 1 missing, 0 failed on import)
make[1]: Leaving directory '〇〇〇〇〇〇/Python-3.13.0'
$
$ make test (今回はテストも行ってみました。)
・・・・・・
21 tests skipped:
test.test_asyncio.test_windows_events
test.test_asyncio.test_windows_utils test.test_gdb.test_backtrace
test.test_gdb.test_cfunction test.test_gdb.test_cfunction_full
test.test_gdb.test_misc test.test_gdb.test_pretty_print
test_android test_dbm_ndbm test_devpoll test_free_threading
test_ioctl test_kqueue test_launcher test_msvcrt test_startfile
test_winapi test_winconsoleio test_winreg test_winsound test_wmi
4 tests skipped (resource denied):
test_peg_generator test_tkinter test_ttk test_zipfile64
453 tests OK.
Total duration: 13 min 45 sec
Total tests: run=44,312 skipped=1,693
Total test files: run=474/478 skipped=21 resource_denied=4
Result: SUCCESS
$
# make install
/usr/local/python にインストールされているので、環境変数を設定するのも前回通りです。
$ cat python3.sh
export PATH=/usr/local/python/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/python/lib
$
$ source python3.sh
$ python3 --version
Python 3.13.0
$
これで、Python 3.13.0 のインストールは一応完了です。
https://www.python.org/downloads/release/python-3130/
の中で、(Google Chrome による翻訳)
New features
・ PyPyをベースとした、新しく改良された対話型インタプリタです。複数行の編集や色のサポート、色付きの例外トレースバックが特徴です。
となっていたので、試してみました。
$ python3
Python 3.13.0 (main, Oct 8 2024, 02:36:16) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
(プロンプトやエラーメッセージの一部などがピンク色になった。)
>>> for num in [1,2,3,4]:
... print(nim)
...
Traceback (most recent call last):
File "<python-input-0>", line 2, in <module>
print(nim)
^^^
NameError: name 'nim' is not defined. Did you mean: 'num'?
>>> for num in [1,2,3,4]:
... print(nim)
(上矢印キーでいっぺんに表示される。修正も可能!)
>>> for num in [1,2,3,4]:
... print(num)
...
1
2
3
4
>>>
これは、便利ですね。
さて、New featuresのもう一つ、
・ 予備的、実験的なJITであり、大幅なパフォーマンス向上のための土台となる。
ですが、これは Just In Time コンパイラのことらしいです。これを実現するには、configure のオプション、
--enable-experimental-jit
build the experimental just-in-time compiler (default is no)
を加える必要があります。試しにこれを加えてmake すると、
$ ./configure --prefix=/usr/local/python --enable-optimizations --with-readline --enable-shared --enable-experimental-jit
$ make
・・・・
| raise RuntimeError(f"Can't find {tool}-{_LLVM_VERSION}!")
| RuntimeError: Can't find clang-18!
+---------------- ... ----------------
| and 219 more exceptions
+------------------------------------
make[2]: *** [Makefile:3029: jit_stencils.h] Error 1
make[2]: Leaving directory '/home/espiya/src/Python-3.13.0-jit'
make[1]: *** [Makefile:889: profile-gen-stamp] Error 2
make[1]: Leaving directory '/home/espiya/src/Python-3.13.0-jit'
make: *** [Makefile:901: profile-run-stamp] Error 2
$
この Raspberry pi ではうまく行きませんでした。残念。
clang はシステムのものでも Ver.16 なので、自分でインストールする必要があります。しかも、clang は LLVM なので、ちょっと大変そうです。
Python って、GCC でなくて、LLVM 推しなのですね。 そのうち試して見たいと思います。
当ブログの以前の記事の通りの方法で、早速 Raspberry Pi にインストールしてみます。
まずは、ダウンロードして、チェックします。(例によって空白文字は適当です。)
$ wget http://www.python.org/ftp/python/3.13.0/Python-3.13.0.tar.xz
$ md5sum Python-3.13.0.tar.xz;echo 726e5b829fcf352326874c1ae599abaa
726e5b829fcf352326874c1ae599abaa Python-3.13.0.tar.xz
726e5b829fcf352326874c1ae599abaa
$
$ wget http://www.python.org/ftp/python/3.13.0/Python-3.13.0.tar.xz.asc
$ gpg --verify Python-3.13.0.tar.xz.asc
gpg: assuming signed data in 'Python-3.13.0.tar.xz'
gpg: Signature made Mon 07 Oct 2024 08:30:45 BST
gpg: using RSA key 7169605F62C751356D054A26A821E680E5FA6305
gpg: Good signature from "Thomas Wouters <thomas@python.org>" [unknown]
gpg: aka "Thomas Wouters <thomas@xs4all.nl>" [unknown]
gpg: aka "Thomas Wouters <twouters@google.com>" [unknown]
gpg: aka "Thomas Wouters <thomas.wouters.prive@gmail.com>" [unknown]
gpg: aka "Thomas Wouters <thomaswout@gmail.com>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 7169 605F 62C7 5135 6D05 4A26 A821 E680 E5FA 6305
$
10月7日にサインされていますね。
3.12.6 の時と同じように make してみます。
$ tar xvf Python-3.13.0.tar.xz
$ cd Python-3.13.0
$ ./configure --prefix=/usr/local/python --enable-optimizations --with-readline --enable-shared
$ make (52分かかりました。)
・・・・・・
Total duration: 6 min 52 sec
Total tests: run=9,361 skipped=201
Total test files: run=44/44
Result: SUCCESS
true
・・・・・・
The necessary bits to build these optional modules were not found:
_dbm
To find the necessary bits, look in configure.ac and config.log.
Checked 112 modules (33 built-in, 77 shared, 1 n/a on linux-aarch64, 0 disabled, 1 missing, 0 failed on import)
make[1]: Leaving directory '〇〇〇〇〇〇/Python-3.13.0'
$
$ make test (今回はテストも行ってみました。)
・・・・・・
21 tests skipped:
test.test_asyncio.test_windows_events
test.test_asyncio.test_windows_utils test.test_gdb.test_backtrace
test.test_gdb.test_cfunction test.test_gdb.test_cfunction_full
test.test_gdb.test_misc test.test_gdb.test_pretty_print
test_android test_dbm_ndbm test_devpoll test_free_threading
test_ioctl test_kqueue test_launcher test_msvcrt test_startfile
test_winapi test_winconsoleio test_winreg test_winsound test_wmi
4 tests skipped (resource denied):
test_peg_generator test_tkinter test_ttk test_zipfile64
453 tests OK.
Total duration: 13 min 45 sec
Total tests: run=44,312 skipped=1,693
Total test files: run=474/478 skipped=21 resource_denied=4
Result: SUCCESS
$
# make install
/usr/local/python にインストールされているので、環境変数を設定するのも前回通りです。
$ cat python3.sh
export PATH=/usr/local/python/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/python/lib
$
$ source python3.sh
$ python3 --version
Python 3.13.0
$
これで、Python 3.13.0 のインストールは一応完了です。
https://www.python.org/downloads/release/python-3130/
の中で、(Google Chrome による翻訳)
New features
・ PyPyをベースとした、新しく改良された対話型インタプリタです。複数行の編集や色のサポート、色付きの例外トレースバックが特徴です。
となっていたので、試してみました。
$ python3
Python 3.13.0 (main, Oct 8 2024, 02:36:16) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
(プロンプトやエラーメッセージの一部などがピンク色になった。)
>>> for num in [1,2,3,4]:
... print(nim)
...
Traceback (most recent call last):
File "<python-input-0>", line 2, in <module>
print(nim)
^^^
NameError: name 'nim' is not defined. Did you mean: 'num'?
>>> for num in [1,2,3,4]:
... print(nim)
(上矢印キーでいっぺんに表示される。修正も可能!)
>>> for num in [1,2,3,4]:
... print(num)
...
1
2
3
4
>>>
これは、便利ですね。
さて、New featuresのもう一つ、
・ 予備的、実験的なJITであり、大幅なパフォーマンス向上のための土台となる。
ですが、これは Just In Time コンパイラのことらしいです。これを実現するには、configure のオプション、
--enable-experimental-jit
build the experimental just-in-time compiler (default is no)
を加える必要があります。試しにこれを加えてmake すると、
$ ./configure --prefix=/usr/local/python --enable-optimizations --with-readline --enable-shared --enable-experimental-jit
$ make
・・・・
| raise RuntimeError(f"Can't find {tool}-{_LLVM_VERSION}!")
| RuntimeError: Can't find clang-18!
+---------------- ... ----------------
| and 219 more exceptions
+------------------------------------
make[2]: *** [Makefile:3029: jit_stencils.h] Error 1
make[2]: Leaving directory '/home/espiya/src/Python-3.13.0-jit'
make[1]: *** [Makefile:889: profile-gen-stamp] Error 2
make[1]: Leaving directory '/home/espiya/src/Python-3.13.0-jit'
make: *** [Makefile:901: profile-run-stamp] Error 2
$
この Raspberry pi ではうまく行きませんでした。残念。
clang はシステムのものでも Ver.16 なので、自分でインストールする必要があります。しかも、clang は LLVM なので、ちょっと大変そうです。
Python って、GCC でなくて、LLVM 推しなのですね。 そのうち試して見たいと思います。