This is the documentation for the latest development branch of MicroPython and may refer to features that are not available in released versions.

If you are looking for the documentation for a specific release, use the drop-down menu on the left and select the desired version.

sys – System specific functions.

System specific functions.

This module implements a subset of the corresponding CPython module, as described below. For more information, refer to the original CPython documentation: sys.

Attributes

argv

A mutable list of arguments the current program was started with.

byteorder

The byte order of the system ("little" or "big").

implementation

Object with information about the current Python implementation. For

maxsize

Maximum value which a native integer type can hold on the current platform,

modules

Dictionary of loaded modules. On some ports, it may not include builtin

path

A mutable list of directories to search for imported modules.

platform

The platform that MicroPython is running on. For OS/RTOS ports, this is

ps1

Mutable attributes holding strings, which are used for the REPL prompt. The defaults

ps2

Mutable attributes holding strings, which are used for the REPL prompt. The defaults

stderr

Standard error stream.

stdin

Standard input stream.

stdout

Standard output stream.

tracebacklimit

A mutable attribute holding an integer value which is the maximum number of traceback

version

Python language version that this implementation conforms to, as a string.

version_info

Python language version that this implementation conforms to, as a tuple of ints.

Functions

atexit(→ _typeshed.Incomplete)

Register func to be called upon termination. func must be a callable

exit(→ _typeshed.Incomplete)

Terminate current program with a given exit code. Underlyingly, this

print_exception(→ None)

Print exception with a traceback to a file-like object file (or

settrace(→ None)

Enable tracing of bytecode execution. For details see the `CPython

Module Contents

sys.atexit(func) Incomplete

Register func to be called upon termination. func must be a callable that takes no arguments, or None to disable the call. The atexit function will return the previous value set by this function, which is initially None.

Difference to CPython

This function is a MicroPython extension intended to provide similar functionality to the atexit module in CPython.

sys.exit(retval=0) Incomplete

Terminate current program with a given exit code. Underlyingly, this function raise as SystemExit exception. If an argument is given, its value given as an argument to SystemExit.

sys.print_exception(exc, file=stdout) None

Print exception with a traceback to a file-like object file (or sys.stdout by default).

Difference to CPython

This is simplified version of a function which appears in the traceback module in CPython. Unlike traceback.print_exception(), this function takes just exception value instead of exception type, exception value, and traceback object; file argument should be positional; further arguments are not supported. CPython-compatible traceback module can be found in micropython-lib.

sys.settrace(tracefunc) None

Enable tracing of bytecode execution. For details see the CPython documentation.

This function requires a custom MicroPython build as it is typically not present in pre-built firmware (due to it affecting performance). The relevant configuration option is MICROPY_PY_SYS_SETTRACE.

sys.argv: List

A mutable list of arguments the current program was started with.

sys.byteorder: Incomplete

The byte order of the system ("little" or "big").

sys.implementation: Incomplete

Object with information about the current Python implementation. For MicroPython, it has following attributes:

  • name - string “micropython”

  • version - tuple (major, minor, micro, releaselevel), e.g. (1, 22, 0, ‘’)

  • _machine - string describing the underlying machine

  • _mpy - supported mpy file-format version (optional attribute)

This object is the recommended way to distinguish MicroPython from other Python implementations (note that it still may not exist in the very minimal ports).

Starting with version 1.22.0-preview, the fourth node releaselevel in implementation.version is either an empty string or "preview".

CPython mandates more attributes for this object, but the actual useful bare minimum is implemented in MicroPython.

sys.maxsize: int

Maximum value which a native integer type can hold on the current platform, or maximum value representable by MicroPython integer type, if it’s smaller than platform max value (that is the case for MicroPython ports without long int support).

This attribute is useful for detecting “bitness” of a platform (32-bit vs 64-bit, etc.). It’s recommended to not compare this attribute to some value directly, but instead count number of bits in it:

bits = 0 v = sys.maxsize while v: bits += 1 v >>= 1 if bits > 32: # 64-bit (or more) platform

sys.modules: Dict

Dictionary of loaded modules. On some ports, it may not include builtin modules.

sys.path: List

A mutable list of directories to search for imported modules.

On MicroPython, an entry with the value ".frozen" will indicate that import should search frozen modules at that point in the search. If no frozen module is found then search will not look for a directory called .frozen, instead it will continue with the next entry in sys.path.

sys.platform: Incomplete

The platform that MicroPython is running on. For OS/RTOS ports, this is usually an identifier of the OS, e.g. "linux". For baremetal ports it is an identifier of a board, e.g. "pyboard" for the original MicroPython reference board. It thus can be used to distinguish one board from another. If you need to check whether your program runs on MicroPython (vs other Python implementation), use sys.implementation instead.

sys.ps1: Incomplete

Mutable attributes holding strings, which are used for the REPL prompt. The defaults give the standard Python prompt of >>> and ....

sys.ps2: Incomplete

Mutable attributes holding strings, which are used for the REPL prompt. The defaults give the standard Python prompt of >>> and ....

sys.stderr: Incomplete

Standard error stream.

sys.stdin: Incomplete

Standard input stream.

sys.stdout: Incomplete

Standard output stream.

sys.tracebacklimit: int

A mutable attribute holding an integer value which is the maximum number of traceback entries to store in an exception. Set to 0 to disable adding tracebacks. Defaults to 1000.

Note: this is not available on all ports.

sys.version: str

Python language version that this implementation conforms to, as a string.

sys.version_info: Tuple

Python language version that this implementation conforms to, as a tuple of ints.

Only the first three version numbers (major, minor, micro) are supported and they can be referenced only by index, not by name.