microPython 官方类库¶
警告
本章节的重要摘要
- MicroPython为每个模块实现了Python功能的子集。
- 为了简化可扩展性,MicroPython版本的标准Python模块通常有``u``(“micro”)前缀。
- 任何特定的MicroPython主板分支都可能遗漏本通用文档中描述的部分功能/函数(由于资源限制或其他限制)。
本章介绍了构成micropython的模块(函数和类库)。有几类模块:
- 内置模块:标准Python功能的子集,用户不能扩展。
- 扩展模块:实现了Python功能的一个子集,并提供用户扩展(通过Python代码)。
- 扩展模块:实现micropython的Python标准库。
- 硬件驱动模块:特定端口或者硬件驱动的模块,因此不可移植。
请注意模块及其内容的可用性:本文档通常所描述所有模块和函数/类在MicroPython项目中都会尽量实现。 但是,MicroPython具有高度可配置性,所以在特定主板/嵌入式系统中可能会仅提供一个子集MicroPython库。 对于官方支持的端口,我们会尽量过滤掉不适用的项目,或标记个别模块的“可用性:” 即使用子句描述主板提供的功能。
考虑到这一点,请仍然警告一些函数/类在本文档中描述的模块(甚至整个模块)中 可能在特定系统上的特定MicroPython版本中不可用。 该查找可用性/不可用性的一般信息的最佳位置特定功能的“通用信息”部分包含有关特定`MicroPython主板`的信息。
在某些端口上,可用的内置库的查询,可以通过在REPL中输入以下内容来导入:: REPL:
help('modules')
除了本文档中描述的内置库之外,还有更多来自Python标准库的模块,它们可以提供更多的MicroPython 的扩展,可以github的 `micropython-lib`找到.
micropython 标准库¶
标准的Python库被 “微型化”后,就是micropython标准库。它们仅仅提供了该模块的核心功能。一些模块没有直接使用标准的Python的名字,而是冠以"u",例如 ujson
代替 json
。也就是说micropython标准库(=微型库),只实现了一部分模块功能。通过他们的名字不同,用户有选择的去写一个Python级模块扩展功能,也是为实现更好的兼容性。
在嵌入式平台上,可添加Python级别封装库从而实现命名兼容CPython,微模块即可调用他们的u-name,也可以调用non-u-name。根据non-u-name包路径的文件可重写。
例如, import json
的话,首先搜索一个 json.py
文件或 json
目录进行加载。如果没有找到,它回退到加载内置 ujson
模块。
- Builtin functions and exceptions
array
-- arrays of numeric datacmath
-- mathematical functions for complex numbersgc
-- control the garbage collectormath
-- mathematical functionssys
-- system specific functionsubinascii
-- binary/ASCII conversionsucollections
-- collection and container typesuerrno
-- system error codesuhashlib
-- hashing algorithmsuheapq
-- heap queue algorithmuio
-- input/output streamsujson
-- JSON encoding and decodinguos
-- basic "operating system" servicesure
-- simple regular expressionsuselect
-- wait for events on a set of streamsusocket
-- socket moduleussl
-- SSL/TLS moduleustruct
-- pack and unpack primitive data typesutime
-- time related functionsuzlib
-- zlib decompression_thread
-- multithreading support