sys -- システム固有関数

このモジュールは、該当する :term:`CPython` モジュールのサブセットを実装しています。 詳しくはオリジナルの CPython ドキュメンテーションを参照してください: sys.

関数

sys.exit(retval=0, /)

与えた終了コードで現在のプログラムを終了します。基本的に、この関数は SystemExit 例外を起こします。引数を与えた場合、その値は SystemExit に引数として与えられます。

sys.atexit(func)

終了時に呼び出す関数 func を登録します。 func は、引数の無い呼出し可能オブジェクトである必要があります。呼出しを無効にするには funcNone を指定します。この atexit 関数は、この関数で以前に設定した値を返します。初回の呼び出しでは None を返します。

CPython との違い

この関数は、CPython の atexit モジュールと似た機能を提供することを目的とした MicroPython の拡張機能です。

sys.print_exception(exc, file=sys.stdout, /)

例外をトレースバック付きでファイルライクなオブジェクト file (またはデフォルトの sys.stdout)に出力します。

CPython との違い

これは CPython の traceback モジュールにある関数の簡略版です。traceback.print_exception() とは異なり、この関数は例外型、例外値、トレースバックオブジェクトの代わりに例外値だけをとります。 file 引数は位置パラメータでなければなりません。この他の引数はサポートされていません。CPython 互換の traceback モジュールは micropython-lib にあります。

sys.settrace(tracefunc)

バイトコード実行のトレースを有効にします。詳細については CPythonのドキュメント を参照してください。

この関数は、(パフォーマンスに影響するので)ビルド済みファームウェアのほとんどには組み込まれていません。そのような場合に利用できるようにするには、MicroPython のカスタムビルドが必要です。関連する設定オプションは MICROPY_PY_SYS_SETTRACE です。

定数

sys.argv

現在のプログラム開始時の引数の変更可能なリスト。

sys.byteorder

システムのバイト順("little" または "big")。

sys.implementation

現在の Python 処理系に関する情報を持つオブジェクト。MicroPython では次の属性を持ちます:

  • name - 文字列 "micropython"
  • version - タプル (major, minor, micro)。例: (1, 7, 0)
  • _machine - 基盤マシンを説明する文字列
  • _mpy - サポートしている mpy ファイルフォーマットバージョン(オプション属性)

このオブジェクトは、MicroPython を他の Python 実装と区別する推奨手段です(しかし、最小限のポートには存在しないことに注意してください)。

CPython との違い

CPython ではこのオブジェクトにもっと多くの属性がありますが、MicroPython では実際に有用となる最低限のものだけを実装しています。

sys.maxsize

現在のプラットフォームでネイティブ整数型が保持できる最大値、またはプラットフォームの最大値より小さい場合は MicroPython 整数型で表現可能な最大値(MicroPython ポートで 長整数をサポートしないとした場合)。

この属性は、プラットフォームの「ビット数」(32ビットか64ビットかなど)を検出するのに便利です。この属性をある値と直接比較するのよりも、その属性のビット数をカウントすることをお勧めします。

bits = 0
v = sys.maxsize
while v:
    bits += 1
    v >>= 1
if bits > 32:
    # 64ビット(以上)のプラットフォーム
    ...
else:
    # 32ビット(以下)のプラットフォーム
    # 32ビットプラットフォームでは、上記の特性によってビットの値が32未満
    # (たとえば31)になる可能性があるので、 "> 16", "> 32", "> 64" の
    # の比較スタイルを使用してください。
sys.modules

読み込まれたモジュールの辞書。一部のポートでは、組込みモジュールが含まれていない可能性があります。

sys.path

import するモジュールを検索するディレクトリの変更可能なリスト。

CPython との違い

MicroPythonでは、".frozen" という値を持つエントリは、import が検索時に 凍結モジュール を検索することを意味します。凍結モジュールが見つからなければ、 .frozen というディレクトリを 探さず 、代わりに sys.path の次のエントリで検索を続行します。

sys.platform

MicroPython が実行されているプラ​​ットフォーム。OS/RTOS ポートの場合、これは通常 "linux" など OS の識別子となります。ベアメタルポートの場合はボードの識別子となります。オリジナルの MicroPython リファレンスボードでは "pyboard" となります。したがって、これはあるボードを別のボードと区別するために使用できます。あなたのプログラムが MicroPython 上で実行されているのか(それとも他の Python 実装で動いているのか)を確認する必要がある場合は代わりに sys.implementation を使ってください。

sys.ps1
sys.ps2

REPL プロンプトに使う文字列を保持する変更可能属性です。デフォルトでは、標準的な Python プロンプトである >>>... を表示します。

sys.stderr

標準エラーの stream

sys.stdin

標準入力の stream

sys.stdout

標準出力の stream

sys.tracebacklimit

例外に格納するトレースバックエントリの最大数を整数値で保持する変更可能属性です。0 を設定すると、トレースバックの追加を無効にします。デフォルトは 1000 です。

注記: これはすべてのポートで使用できるわけではありません。

sys.version

この処理系が準拠する Python 言語バージョンを表す文字列。

sys.version_info

この実装が準拠している Python 言語バージョンを表す int の タプル。

CPython との違い

最初の3つのバージョン番号 (major, minor, micro) のみがサポートされ、インデックスでのみ参照でき、名前では参照できません。