MicroPython ライブラリ¶
警告
この章の重要な要約
- MicroPython は、Python 標準ライブラリの機能を反映した組込みモジュール(例:
os,time)と、MicroPython 固有のモジュール(例:bluetooth,machine)を提供します。 - ほとんどの標準ライブラリモジュールは、同等の Python モジュールにある機能のサブセットを実装しており、MicroPython 特有の拡張機能を提供しているものもあります(例:
array,os)。 - リソースの制約やその他の制限により、ポートやファームウェアのバージョンによっては、ここに記載されているすべての機能が含まれていない場合があります。
- 拡張性を考慮して、組込みモジュールはデバイスにロードされた Python コードで拡張できます。
この章では、MicroPython に組み込まれているモジュール(関数やクラスのライブラリ)について説明します。一般にこのドキュメントでは MicroPython プロジェクトに実装されているすべてのモジュールと関数/クラスについて記述することを目指しています。しかし、MicroPython は高度にカスタマイズしてビルドすることができるため、特定のボードや組込みシステムへの各ポートには、利用可能な MicroPython ライブラリのサブセットしか含まれていないかもしれません。
これを念頭に置いて、特定のシステム上の MicroPython の特定のビルドでは、このドキュメントで説明されているモジュールの一部の機能/クラス(またはモジュール全体)が使えない可能性があります。特定の機能が利用できるかどうかの一般的な情報を得るには、特定の MicroPython ポート に関連する情報を含む「一般的な情報」の章が最適です。
いくつかのポートでは REPL に次のように入力することで import できる、利用可能な組込みライブラリを検出できます:
help('modules')
このドキュメントで説明されている組込みライブラリ以外にも、Python 標準ライブラリからの多くのモジュール、さらに MicroPython の拡張もあります。それらは micropython-lib で見つけられます。
Python 標準ライブラリとマイクロライブラリ¶
以下の標準的な Python ライブラリは、MicroPython の哲学に適合するように「マイクロ化」されています。これらは、そのモジュールの中核となる機能を提供し、標準の Python ライブラリを置き換えるものです。
array-- 数値データの配列binascii-- バイナリ/ASCII 変換builtins-- 組込みの関数と例外cmath-- 複素数のための数学関数collections-- コレクションとコンテナのデータ型errno-- システムエラーコードgc-- ガベージコレクションの制御hashlib-- ハッシュ化アルゴリズムheapq-- ヒープキューアルゴリズムio-- 入出力ストリームjson-- JSON のエンコードとデコードmath-- 数学関数os-- 基本的な「オペレーティングシステム」サービスrandom-- 乱数の生成re-- 簡素な正規表現select-- 一連のストリームのイベント待機socket-- ソケットモジュールssl-- SSL/TLS モジュールstruct-- 基本データ型のパックとアンパックsys-- システム固有関数time-- 時間関連の関数uasyncio--- 非同期 I/O スケジューラzlib-- zlib 展開_thread-- マルチスレッドサポート
MicroPython 固有のライブラリ¶
MicroPython 処理系に固有の機能は、以下のライブラリで利用できます。
ポート固有のライブラリ¶
以降のポート/ボード固有のライブラリには、 machine ライブラリ内にあるものと同様の関数やクラスが用意されていることがあります。そのような場合、ポート固有のライブラリの方では、そのプラットフォームに固有のハードウェア機能が使えるようになっています。
移植可能なコードを作成するには、 machine モジュールの関数やクラスを使ってください。プラットフォーム固有のハードウェアにアクセスするには、適切なポート固有ライブラリを使ってください。たとえば Pyboard の場合は pyb を使います。
pyboard 固有のライブラリ¶
以下のライブラリは pyboard に固有のものです。
WiPy 固有のライブラリ¶
以下のライブラリとクラスは WiPy に固有のものです。
ESP8266 と ESP32 に固有のライブラリ¶
以下のライブラリは ESP8266 と ESP32 に固有のものです。
RP2040 に固有のライブラリ¶
以下のライブラリは (Raspberry Pi Pico で使われている) RP2040 に固有のものです。
Zephyr に固有のライブラリ¶
以下のライブラリは Zephyr ポート に固有のものです。
Python での組込みライブラリの拡張¶
ほとんどの場合、上記のモジュールの名前には接頭辞 u がついています(たとえばモジュール名がだとすると、それは実際には umodule というものになっています)が、MicroPython は接頭辞の無いものにエイリアスします。しかし module.py という名前のファイル(またはその 凍結モジュール)は、このエイリアスよりも優先されます。
これにより、ユーザは組み込みライブラリの拡張実装を提供できます(おそらくは CPython との互換性を高めることが目的でしょう)。ユーザが提供するモジュール(module.py)は umodule を直接インポートすることで組み込みの機能を使えます。これは micropython-lib で広く使われています。詳しくは Distribution packages, package management, and deploying applications を参照してください。
これは、Python の標準ライブラリ(例: os, time など)だけでなく、MicroPythonのライブラリ(例: machine, bluetooth など)にも適用されます。主な例外はポート固有のライブラリ(pyb, esp など)です。
特に組込みモジュールを強制的に使いたい場合以外は、常に import umodule よりも import module の利用をお勧めします。