1. 主页
  2. HA文档
  3. PiliBoard
  4. PiliBoard
  5. MicroPython库

MicroPython库

在Micropython中,可以被程序import的库分成两大类:

  • 内部模块
    内部模块(internal frozen modules)在固件内部,已经被编译,可以直接调用,在文件系统中不可见。比如uosusocketwebrepl等。
    因为已经被编译,所以内部模块占用空间少(不仅仅指文件系统,也指在import之后占用系统内存空间),执行效率高。但因为固件本身大小限制,能放入内部模块的数量是有限的。
    注:很多内部模块以字母u开头,代表这是一个微模块。微模块按照CPython标准设计实现,但可能只实现了其中部分的功能。
  • 位于文件系统中的模块
    文件系统中的PYTHON文件(后缀为py),可以直接被import。这些文件可以通过手工或者upip的方式安装。
    这些模块是未编译的,所以加载后占用内存多,执行效率比内部模块低——但修改这些模块是非常方便的。
    https://pypi.org/中,查找micropython-开头的库,可以直接使用upip安装在/lib/中(如果直接建立和拷贝python文件也是可以的)。
    下例中,使用upip自动下载安装了filedb这个库,安装位置为/lib/
    >>> import upip
    >>> upip.install('micropython-filedb')
    Installing to: /lib/
    Installing micropython-filedb 0.3 from https://files.pythonhosted.org/packages/39/a0/ba8d7290c79a2d321c6c5a175368c39c2f5f44fb699042257bc133851efb/micropython-filedb-0.3.tar.gz
    >>> import filedb
    >>> filedb.
    __class__ __name__ namedtuple ujson
    uos utime DB Model
    now

注:如果要引入ujson模块,我们可以import ujson,也可以import jsonimport json的搜索次序为:首先在系统目录(sys.path,一般为当前目录、根目录、/lib/目录)中搜索是否存在json.py(或名为json的PYTHON包目录)。如果有,就加载;如果没有,就会加载内部模块ujson
其它的,如uosure也是一样的加载搜索次序。

常用内部模块

不同编译版本的MicroPython,其包含的内部模块可能会不同,而且这是非常自由的。但一般来说,以下模块会被包含在ESP8266上的MicroPython中。

此文不允许转载,如需转载请与BD@hachina.io联系。

这篇文章对您有用吗? 1 0