MicroPython ライブラリ¶
警告
この章の重要な要約
- MicroPythonは各モジュールにPythonの機能のサブセットを実装しています。
- 拡張性を容易にするために、標準の Python モジュールの MicroPython 版には通常、
u("micro")接頭辞が付いています。 - 特定の MicroPython の亜種またはポートには、(リソースの制約またはその他の制限のために)この一般的なドキュメンテーションに記載されている機能/関数がサポートされていないことがあります。
この章では、MicroPython に組み込まれているモジュール(関数とクラスのライブラリ)について説明します。このようなモジュールにはいくつかのカテゴリがあります。
- 標準の Python 機能のサブセットを実装し、ユーザが拡張することを意図していないモジュール。
- Python の機能のサブセットを実装するモジュールで、Python コードを介してユーザーが拡張を提供します。
- Python 標準ライブラリへの MicroPython 拡張を実装するモジュール。
- 特定の MicroPython ポート に固有のモジュールで、移植性がありません。
モジュールとその内容の可用性に関する注記: このドキュメンテーションは、MicroPython プロジェクトで実装されているすべてのモジュールと関数/クラスについて記述することを目指しています。しかし、MicroPython は高度に構成可能であり、特定のボード/組み込みシステムへの各ポートは、MicroPython ライブラリのサブセットのみを使用可能にします。正式にサポートされているポートの場合、適用不可能な項目を除外するか、ポートが提供する機能の個々の説明に「可用性:」節を付けるかしています。
これを念頭に置いて、特定のシステム上の MicroPython の特定のビルドでは、このドキュメントで説明されているモジュールの一部の機能/クラス(またはモジュール全体)が使えない可能性があります。特定の機能の可用性/非可用性に関する一般的な情報を見つける最良の場所は、特定の MicroPython ポート に関連する情報を含む「一般情報」の章です。
いくつかのポートでは、REPL に次のように入力することで import できる、利用可能な組込みライブラリを検出できます。
help('modules')
このドキュメントで説明されている組込みライブラリ以外にも、Python 標準ライブラリからの多くのモジュール、さらに MicroPython の拡張もあります。それらは micropython-lib で見つけることができます。
Python 標準ライブラリとマイクロライブラリ¶
以下の標準的な Python ライブラリは、MicroPython の哲学に適合するように「マイクロ化」されています。これらは、そのモジュールの中核となる機能を提供し、標準の Python ライブラリを置き換えるものです。後述のモジュールいつくはか、標準的な Python の名前を使いますが、接頭辞 "u" がついています。たとえば json の代わりに ujson となっています。これは、そのようなモジュールがマイクロライブラリであることを示しています。すなわち、CPython モジュールの機能のサブセットのみを実装しています。異なる名前を付けることによって、ユーザーは Python レベルのモジュールを作成して、CPython との互換性を高める機能を拡張できます(実際に、これは前述の micropython-lib プロジェクトによって行われます)。
CPython とのネーミングの互換性を実現するために Python レベルのラッパーモジュールを追加するのは面倒な一部の組み込みプラットフォームでは、マイクロモジュールは u 付きのと u なしの名前の両方を使えます。u なしの名前は、ライブラリパス(sys.path)内の同名のファイルで上書きできます。たとえば import json はまず、ファイル json.py (あるいはパッケージディレクトリ json)を検索し、見つかった場合はそのモジュールをロードします。何も見つからなければ、組込みの ujson モジュールをロードします。
- 組込みの関数と例外
cmath-- 複素数のための数学関数gc-- ガベージコレクションの制御math-- 数学関数sys-- システム固有関数uarray-- 数値データの配列uasyncio--- 非同期 I/O スケジューラubinascii-- バイナリ/ASCII 変換ucollections-- コレクションとコンテナのデータ型uerrno-- システムエラーコードuhashlib-- ハッシュ化アルゴリズムuheapq-- ヒープキューアルゴリズムuio-- 入出力ストリームujson-- JSON のエンコードとデコードuos-- 基本的な「オペレーティングシステム」サービスure-- 簡素な正規表現uselect-- 一連のストリームのイベント待機usocket-- ソケットモジュールussl-- SSL/TLS モジュールustruct-- 基本データ型のパックとアンパックutime-- 時間関連の関数uzlib-- zlib 展開_thread-- マルチスレッドサポート
MicroPython 固有のライブラリ¶
MicroPython 処理系に固有の機能は、以下のライブラリで利用できます。
ポート固有のライブラリ¶
以降のポート/ボード固有のライブラリには、 machine ライブラリ内にあるものと同様の関数やクラスが用意されていることがあります。そのような場合、ポート固有のライブラリの方では、そのプラットフォームに固有のハードウェア機能が使えるようになっています。
移植可能なコードを作成するには、 machine モジュールの関数やクラスを使ってください。プラットフォーム固有のハードウェアにアクセスするには、適切なポート固有ライブラリを使ってください。たとえば Pyboard の場合は pyb を使います。
pyboard 固有のライブラリ¶
以下のライブラリは pyboard に固有のものです。
WiPy 固有のライブラリ¶
以下のライブラリとクラスは WiPy に固有のものです。
ESP8266 と ESP32 に固有のライブラリ¶
以下のライブラリは ESP8266 と ESP32 に固有のものです。