coLinux日記

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

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

2024-10-13 07:54:13 | Python
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 推しなのですね。 そのうち試して見たいと思います。

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 入門者が生成AIも利用して Py... | トップ | 入門者が、Python プログラミ... »
最新の画像もっと見る

コメントを投稿

Python」カテゴリの最新記事