用 ESP32 刷过老版本 MicroPython 固件的朋友,一定懂这种崩溃:
- 想装个 upypi 上的包,mip 直接报错「不支持相对目录」想拉取 gitee/gitcode 的代码,还要手动拼长长的 URL,手都敲酸老固件更不上新特性,想装个新包简直要了命
今天,有一位开发者魔改了 MicroPython 的 mip 源码,做了这个 mips 工具:专门给低版本 mip 续命,还加了国产平台简写,让 ESP32 也能一键装包!
mips 是什么?给老版 mip 打个「增强补丁」
mips 是基于 MicroPython 官方 mip 源码修改的增强版工具,核心解决两个痛点:
低版本 mip 不支持相对目录:package.json 全用绝对地址,老固件也能直接下载
国产平台访问麻烦:新增 upypi:/gitee:/gitcode: 三种简写,一行命令拉取国产仓库
它完全兼容原生 mip 语法,你甚至可以把它当成「更好用的 mip」来用 —— 老项目不用改一行代码,直接替换就能跑。
核心功能亮点:这几个特性太香了
✅ 兼容低版本固件:哪怕是几年前的 ESP32 老固件,也能通过 mips 正常安装包,再也不用为了装包刷固件
✅ 国产平台简写:
upypi:microflask
-
-
- → 自动映射到
-
https://upypi.net/pkgs/microflask/gitee:wth_iw0/microflask
-
-
- → 直接拉取 gitee 仓库代码
-
gitcode:wth_iw0/microdns
-
-
- → 支持 gitcode,还加了
-
sleep(2)
-
-
- 反爬机制
-
✅ 双版本运行:
mips.py:给 MicroPython 开发板用,直接跑在 ESP32 上
mips_cpy.py:给标准 Python 用,电脑上也能提前下载包,再传到开发板
✅ 智能路径管理:mips_cpy 会自动找 lib 文件夹(优先级高于 Lib),没有就存当前目录,不用手动建文件夹
✅ debug 模式:加了 debug=True 参数,能看到完整下载日志,哪里报错一眼看清
手把手教你用:5 分钟跑通
库的地址就在 upypi 上:https://upypi.net/
搜索:mips
点击详情页 ,进入 复制 下载 指令即可:
看到终端输出 Done,就说明安装成功了 ——mips.py 和 mips_cpy.py 会自动传到 ESP32 的 /lib 目录。
详细说明可看:https://upypi.net/zh/pkgs/mips
原理简述
URL 重写:新增 _rewrite_url() 函数,把 upypi:/gitee:/gitcode: 自动转成完整 URL
反爬机制:针对 gitcode,在下载前加了 sleep(2),避免被反爬拦截
输出优化:修改了 Copying 日志,加上了完整 URL,方便排查问题
路径兼容:把 package.json 里的相对路径全改成绝对路径,让低版本 mip 能识别
标准 Python 适配:把 MicroPython 专属 API 替换成标准 Python 兼容的写法,做出了
mips_cpy.py
74