• 正文
  • 相关推荐
申请入驻 产业图谱

轻干货:MicroPython包管理的冷知识与速通技巧

9小时前
74
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

上位机Python 为例,Python 模块和包可以打包成适合系统间传输的归档文件,存储在 Python 包索引 PyPI 上,需要安装模块和包的用户只需要执行对应 pip 安装命令即可完成下载部署工作。

所谓打包就是将你的源代码进一步封装,并且将所有的项目部署工作都事先安排好,这样使用者拿到后即装即用,不用再操心如何部署的问题;而分发则是指将打包好的 Python 模块和包上传到 Python 包索引中,这样就可以作为一个开源库通过 pip install 的方式安装使用了。


Python 包的分发可以分为两种:

以源码包的方式发布:

    • 源码包安装的过程,是先解压,再编译,最后才安装,所以它是跨平台的,由于每次安装都要进行编译,相对二进包安装方式来说安装速度较慢。源码包的本质是一个压缩包,其常见的格式有:ZIP、tar、gztar、bztar。

以二进制包形式发布:

    二进制包的安装过程省去了编译的过程,直接进行解压安装,所以安装速度较源码包来说更快。由于不同平台的编译出来的包无法通用,所以在发布时,需事先编译好多个平台的包。二进制包的常见格式有:egg、wheel。

正如上位机 Python 一样,MicroPython 支持创建“第三方”包,分发它们,并在每个用户的环境中轻松安装。

MicroPython 分发包格式是众所周知的 tar.gz 格式,Gzip 压缩器用作 TAR 压缩包的外部包装器,默认情况下使用 4KB 字典大小。

1.安装包的流程

安装包的基本流程为:

远程安装(mip 方式):

可安装字节码版(.mpy)或源代码版(.py)的包 / 模块,例如安装 random 源代码模块时,需先删除已装的 random.mpy 文件,再通过 mip.install(对应文件的GitHub链接) 命令安装。安装后需将存放模块的 /lib 目录添加到 Python 系统路径(执行 sys.path.append('/lib')),才能直接用 import 导入模块。

手动安装(mpremote 方式):

适用于无本地网络功能的 MicroPython 开发板,通过主机 PC 借助 mpremote 工具(支持 USB/UART 连接设备)操作。可安装包、指定链接的文件,或从 GitHub/GitLab 等仓库安装,命令格式如 mpremote mip install <包名/链接/仓库地址>

安装时可配置 --target-path(指定安装路径)、--no-mpy(不编译为.mpy)、--index 等参数。

具体流程可以查看:MicroPython 包与模块的概述和安装方法

2.创建分发自己的包和模块

MicroPython 创建并分发自己的包和模块的流程简要概括如下:

规范包结构:组织文件目录,包含核心功能.py 文件、可选的 init.py(标识为包)、README.md(说明文档)、LICENSE(开源协议)、examples 文件夹(示例代码)等。

代码规范检查:借助 pre-commit hook,自动调用 black、Flake8 工具做代码格式规范与静态检查,确保代码符合规范。

编译 / 优化(适配嵌入式环境):将.py 文件编译为.mpy 字节码;低内存设备可将包 “冻结” 为固件字节码(预编译后存储到 ROM)。

准备分发元数据:编写 package.json/manifest.py 等文件,明确包的名称、版本、依赖关系等信息。

分发与部署:公开分发:上传到 PyPI(供他人通过 upip 安装),或发布到 GitHub 仓库供下载。

设备部署:无网络设备可通过 Unix 端口交叉安装到目录映像,再传输到设备;低内存设备直接烧录含冻结包的固件。

具体流程可以查看下面链接:https://www.cnblogs.com/FreakEmbedded/p/18757480

相关推荐