MicroPython 库

警告

本章节的重要概述

  • MicroPython 提供了与 Python 标准库功能一致的内置模块 (例如 os, time ),以及 MicroPython 特有的模块 (例如 bluetooth, machine )。

  • 大多数标准库模块实现了等效 Python 模块功能的子集,并且在少数情况下提供了一些特定于 MicroPython 的扩展(例如 array, os

  • 由于资源或其他原因限制,某些适配端或固件版本可能在这里没有包含所有功能的文档。

  • 为了实现可扩展性,内置模块可以从加载到设备上的 Python 代码进行扩展。

本章描述了 MicroPython 中内置的模块(函数和类库)。 本文档通常旨在描述在 MicroPython 项目中实现的所有模块和函数/类。 但是,MicroPython 是高度可配置的,特定板/嵌入式系统的每个适配端可能仅包含可用 MicroPython 库的子集。

基于这一点,请注意本文档中描述的模块(甚至整个模块)中的某些函数/类在特定系统上的特定 MicroPython 构建中 也许不可用。 了解特定功能的可用性/不可用性的最佳位置是包含特定 MicroPython 适配端 有关信息的 “信息概要” 内容。

在一些适配端你可以通过在 REPL 输入以下命令查看可用的内置库:

help('modules')

除了本文档中描述的内置库之外,还可以在 micropython-lib 中找到 Python 标准库中的更多模块,以及它对 MicroPython 的进一步扩展。

Python 标准库和微型库

以下标准 Python 库已被 “微型化” 以符合 MicroPython 的理念。 它们提供了其模块的核心功能,旨在成为标准 Python 库的替代品。

MicroPython 的特定库

以下库中提供了特定于 MicroPython 实现的功能。

适配端的特定库

在某些情况下,以下适配端/板特定库具有类似于 machine 库中的功能或类。 在这种情况下,适配端特定库中的对应项会声明该平台独有的硬件功能。

为了编写可移植代码,请使用 machine 模块中的函数和类。 要访问特定于平台的硬件时,请使用适当的库,例如在 Pyboard 上使用 pyb

pyboard 的特定库

下述的库是 pyboard 特有的。

WiPy 的特定库

下述的库和类是 WiPy 特有的。

ESP8266 和 ESP32 的特定库

下述的库是 ESP8266 和 ESP32 特有的。

RP2040 的特定库

下述的库和类是 RP2040 特有的,用于树莓派 Pico 板。

Zephyr 的特定库

下述的库和类是 Zephyr 适配端特有的。

扩展 Python 内置库

在大多数情况下,上述模块实际上命名为 umodule 而不是 module,但 MicroPython 会将任何以 u 为前缀的模块别名为非 u 版本。 但是,名为 module.py 的文件(或 冻结的 module )将优先于此别名。

该特性允许用户提供内置库的扩展实现(可能提供额外的 CPython 兼容性)。 用户提供的模块(指 module.py 中)仍可通过直接导入 umodule 来使用内置功能。 这种做法在 micropython-lib 中广泛使用。 有关详细信息,请参阅 分发包、包管理和部署应用程序

这在 Python 标准库(例如 ostime 等)和 MicroPython 库(例如 machinebluetooth 等)同样适用。 主要的例外是特定于适配端的库( pybesp 等)。

除非你特别想强制使用内置模块,我们推荐始终使用 ``import module`` 而不是 ``import umodule`` 。