赞
踩
正如“大”Python 一样,MicroPython 支持创建“第三方”包,分发它们,并在每个用户的环境中轻松安装它们。本章讨论如何实现这些操作。建议对 Python 打包有一定的了解。
以下步骤表示创建和使用包时的高级工作流程:
mip (mip installs packages) 的概念与 Python 的 pip 工具相似,但是它不使用 pypi 索引,默认情况下,是使用 micropython-lib 作为其索引。 从micropython-lib 下载时,mip 将自动获取 .mpy 文件。该模块可以从 micropython-lib 和第三方站点(包括GitHub)安装包装。
在 REPL 环境下使用 mip 安装的语法,但先决条件是 ESP32-CAM 必须要先连上网。
import mip
mip.install("pkgname") # 直接指定包名称,会从 https://micropython.org/pi/v2 找寻并安装
mip.install("pkgname", version="x.y") # 指定包名称与版次
mip.install("pkgname", mpy=False) # 安装原码文件 (会是 .py 而不是 .mpy 档)
mip.install("http://example.com/x/y/foo.py") # 安装第三方包
mip.install("github:org/repo/path/foo.py", target="third-party") # 从 GitHub 直接安装
mip.install("github:org/user/path/package.json") # 安装比较复杂的包,包含了一些相依库的描述
mip 预设会把包安装在(/lib) 中。如果有指定 target 选项,则会安装在该目录,但记得在 sys.path 变量中,加入该目录 (sys.path.append("third-party")
),不然 import 会找不到该包的所在位置。
因为原先固件预设没有安装mip,所以要透过远程方式 (mpremote) 安装 mip,命令如下。
mpremote connect /dev/cu.usbserial-14110 mip install mip
下图可以看到在本机的终端上进行安装 mip,会连到 https://micropython.org/pi/v2 网站进行搜寻并下载安装,会安装在 ESP32-CAM 的 /lib 路径,安装时会一并安装相依套件 urequests,安装完毕后再进入 REPL 环境,就可以正常使用 mip。
图 1. 使用 mpremote 安装 mip
再次强调,在 REPL 环境下一定要先连结网络,才能进行安装,不然会出现错误,画面如下。
图 2. 在 REPL 使用 mip 安装
所以,使用 mpremote 安装是比较常用的方法。
以下展示安装 microdot 这个第三方软件的包,microdot (https://github.com/miguelgrinberg/microdot) ,(百度云盘,提取码ccit)是一个由 Flask 启发的简约 Python Web 框架,是支援 Python 和 MicroPython 的小型网络框架,旨在有限资源(例如微控制器)的系统上运行。目前可以在 PyPi 直接安装,但是在 MicroPython 只能手动安装,安装方法十分简单,可以选择从 github 或是本地上传,命令如下。
# 从 github 安装
mpremote connect /dev/cu.usbserial-14110 mip install https://raw.githubusercontent.com/miguelgrinberg/microdot/main/src/microdot.py
# 或是事先下载原码,直接上传到 ESP32-CAM 就可以
mpremote connect /dev/cu.usbserial-14110 cp microdot.py :/lib/
mpremote connect /dev/cu.usbserial-14110 ls /lib
下图显示手动本地文件上传来进行安装,安装完后使用 ls
命令来检视是否上传成功,接著再连接上 ESP32-CAM 直接运行代码,确认包装无误。
图 3. 使用本地手动安装
参考代码
from microdot import Microdot
app = Microdot()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。