MicroPython 库¶
警告
本节重要摘要
本章介绍 MicroPython 中内置的模块(函数和类库)。本文档通常希望描述在 MicroPython 项目中实现的所有模块和函数/类。但是,MicroPython 是高度可配置的,并且特定板/嵌入式系统的每个端口可能仅包含可用 MicroPython 库的一个子集。
考虑到这一点,请注意本文档中描述的模块(甚至整个模块)中的某些函数/类在 特定系统上的特定 MicroPython 版本中可能不可用 。查找特定功能的可用性/不可用性的一般信息的最佳位置是“一般信息”部分,其中包含与特定MicroPython 端口相关的信息。
在某些端口上,您可以通过在 REPL输入以下内容来发现可用的内置库:
help('modules')
除了本文档中描述的内置库之外,还可以在micropython-lib中找到 Python 标准库中的更多模块以及对它的进一步 MicroPython 扩展。
Python 标准库和微型库¶
以下标准 Python 库已被“微化”以符合 MicroPython 的理念。它们提供该模块的核心功能,旨在替代标准 Python 库。
array
– 数值数据数组binascii
– 二进制/ASCII 转换builtins
– 内置函数和异常cmath
– 复数的数学函数collections
– 集合和容器类型errno
– 系统错误代码gc
– 控制垃圾收集器hashlib
– 散列算法heapq
– 堆队列算法io
– 输入/输出流json
– JSON 编码和解码math
– 数学函数os
– 基本的“操作系统”服务re
– 简单的正则表达式select
– 等待一组流上的事件socket
– 插座模块ssl
– SSL/TLS 模块struct
– 打包和解包原始数据类型sys
– 系统特定功能time
– 时间相关功能uasyncio
— 异步 I/O 调度器zlib
– zlib 解压_thread
– 多线程支持
MicroPython 特定的库¶
以下库中提供了特定于 MicroPython 实现的功能。
特定于端口的库¶
在某些情况下,以下特定于端口/板的库具有与库中的功能或类类似的功能或类machine
。在发生这种情况时,端口特定库中的条目公开了该平台独有的硬件功能。
要编写可移植代码,请使用machine
模块中的函数和类。要访问特定于平台的硬件,请使用适当的库,例如pyb
在 Pyboard 的情况下。
特定于 pyboard 的库¶
以下库特定于 pyboard。
特定于 WiPy 的库¶
以下库和类特定于 WiPy。
特定于 ESP8266 和 ESP32 的库¶
以下库特定于 ESP8266 和 ESP32。
从 Python 扩展内置库¶
在大多数情况下,上述模块实际上是命名umodule
而不是
module
,但 MicroPython 会将任何以 u
为前缀的模块作为非u
版本的别名。然而,名为的文件(或 f冻结模块)
module.py
将优先于该别名。
这允许用户提供内置库的扩展实现(可能是为了提供额外的 CPython 兼容性)。用户提供的模块 (in module.py
) 仍然可以通过umodule
直接导入来使用内置功能 。这在 micropython-lib中被广泛使用。有关详细信息,请参阅
分发包、包管理和部署应用程序 。
这适用于Python标准库(如 os
, time
等),也有MicroPython库太(如 machine
, bluetooth
等)。主要的例外是端口专用库(pyb
, esp
等)。
除了当您特别想强制使用内置模块时,我们建议始终使用“import module”而不是“import umodule”。