MicroPython 库 警告 本节重要摘要 MicroPython 提供了反映 Python 标准库功能的内置模块(例如os, time),以及 MicroPython 特定的模块(例如bluetooth, machine)。 大多数标准库模块实现了等效 Python 模块的功能子集,并在少数情况下提供了一些特定于 MicroPython 的扩展(例如array, os) 由于资源限制或其他限制,某些端口或固件版本可能不包括此处记录的所有功能。 为了实现可扩展性,内置模块可以从加载到设备上的 Python 代码进行扩展。 $ @4 y$ H# F9 P7 F, y4 U
8 c3 d! o( ?# j" z% U5 \* l本章介绍 MicroPython 中内置的模块(函数和类库)。本文档通常希望描述在 MicroPython 项目中实现的所有模块和函数/类。但是,MicroPython 是高度可配置的,并且特定板/嵌入式系统的每个端口可能仅包含可用 MicroPython 库的一个子集。 考虑到这一点,请注意本文档中描述的模块(甚至整个模块)中的某些函数/类在 特定系统上的特定 MicroPython 版本中可能不可用 。查找特定功能的可用性/不可用性的一般信息的最佳位置是“一般信息”部分,其中包含与特定MicroPython 端口相关的信息。 在某些端口上,您可以通过在 REPL输入以下内容来发现可用的内置库: help('modules')
6 B k7 h" V5 a, s. ^6 g$ B
& d* H8 F9 ]6 N! O8 E- q除了本文档中描述的内置库之外,还可以在micropython-lib中找到 Python 标准库中的更多模块以及对它的进一步 MicroPython 扩展。 Python 标准库和微型库以下标准 Python 库已被“微化”以符合 MicroPython 的理念。它们提供该模块的核心功能,旨在替代标准 Python 库。 , j1 x8 q- t/ l- R9 m% L8 N' B# K
% i% g6 ^7 Z' j3 B+ X+ h! M( \MicroPython 特定的库以下库中提供了特定于 MicroPython 实现的功能。
: |6 q7 X6 H- v- _7 b: l& [* R; q, ~( S3 z
特定于端口的库在某些情况下,以下特定于端口/板的库具有与库中的功能或类类似的功能或类machine 。在发生这种情况时,端口特定库中的条目公开了该平台独有的硬件功能。 要编写可移植代码,请使用machine 模块中的函数和类。要访问特定于平台的硬件,请使用适当的库,例如pyb 在 Pyboard 的情况下。 特定于 pyboard 的库以下库特定于 pyboard。 8 h9 K2 ~8 z) A! f& x! r
& |( ]3 ]1 C+ b特定于 WiPy 的库以下库和类特定于 WiPy。 ' Q, h) [, l. h' W; w0 R$ n" |) v
- Y4 V) E" {* S2 n' d, O) _# }" G' w: x特定于 ESP8266 和 ESP32 的库以下库特定于 ESP8266 和 ESP32。 * n' A, F" D2 E/ C
& M9 `7 i: O8 L+ T. [. b& `特定于 RP2040 的库以下库特定于 RP2040,在 Raspberry Pi Pico 中使用。 ; h5 Q2 C/ {5 \
. l1 W* d8 D8 M, v+ h! D, a6 _2 M
Zephyr 特有的库以下库特定于 Zephyr 端口。 8 j3 k! q: s9 ]* J5 r* \: p A" ]3 _
% {) V1 }7 d" ?: w
" a7 Y u: v7 ^9 ~从 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”。
1 u, k+ ]$ N( v3 a0 l/ @- i$ C4 _0 g
. T6 h( D% {+ l1 @+ v q |