ESP Board Manager Python package for idf.py extensions
Reason this release was yanked:
Breaks ESP-IDF managed Python environments by upgrading core dependencies
Project description
esp-bmgr-assist
PyPI 发行版名:esp-bmgr-assist(pip install esp-bmgr-assist)。Python 包目录仍为 esp_bmgr_py(含 .pth 引导),与旧文档中的 esp-bmgr-py 仓库路径可并存。
这个包通过自动注入一段代码到 idf.py,为 ESP Board Manager 功能提供便捷使用支持。
功能特性
- 通过
.pth文件实现自动注入 - 自动查找和设置 board manager 组件路径
- 支持
-C/--project-dir等idf.py项目目录参数 - 支持本地组件(
components/esp_board_manager)和托管组件(managed_components/espressif__esp_board_manager) - 在执行
idf.py gen-bmgr-config ...时自动补齐main/idf_component.yml中缺失的 board manager 依赖 - 在执行
idf.py gen-bmgr-config ...时自动下载缺失的 board manager 组件
安装
注意:必须要安装在 esp-idf 的虚拟环境中
从 PyPI 安装
pip install esp-bmgr-assist
从源码安装
pip install git+https://github.com/TDA-2030/esp-bmgr-py.git
工作原理
-
自动注入: 通过
.pth文件在 Python 启动时自动导入idf_injector模块,注册导入钩子 -
延迟执行: 使用导入钩子机制,仅在
idf.py导入idf_py_actions模块时才执行初始化代码(此时 logging 系统已初始化,避免过早执行干扰 CMake 的 Python 检测) -
组件查找:
_main()函数执行时,按以下优先级查找 board manager 组件:- 优先查找本地组件:检查
components/esp_board_manager或components/espressif__esp_board_manager - 检查 manifest 文件中的
override_path配置 - 检查已下载的托管组件:
managed_components/espressif__esp_board_manager
- 优先查找本地组件:检查
-
主动自举: 如果执行的是
idf.py gen-bmgr-config ...且当前工程还没有可用的 board manager 组件:- 自动解析真实工程目录(支持
-C/--project-dir) - 自动创建或补齐
main/idf_component.yml - 自动追加
espressif/esp_board_manager依赖 - 自动下载组件到
managed_components/espressif__esp_board_manager
- 自动解析真实工程目录(支持
-
环境变量设置: 将找到的 board manager 组件路径添加到
IDF_EXTRA_ACTIONS_PATH环境变量 -
自动发现:
idf.py会自动扫描IDF_EXTRA_ACTIONS_PATH目录,发现并加载 board manager 扩展
IDF_EXTRA_ACTIONS_PATH 多路径写法
与 ESP-IDF tools/idf.py 一致:多个目录必须用英文分号 ; 分隔(各平台相同)。不要使用 os.pathsep(例如 Linux/macOS 上常见的 :):IDF 只会按 ; 拆分,否则整段会被当成一个目录名,扩展无法按预期加载。本包内合并/解析该变量时也仅按 ; 处理,与 IDF 行为对齐。
使用方法
安装后,直接使用 idf.py 命令:
idf.py gen-bmgr-config
调试
设置 ESP_BMGR_DEBUG=1 环境变量可查看调试信息:
export ESP_BMGR_DEBUG=1
idf.py gen-bmgr-config
调试输出来自 esp_bmgr_py(idf_injector),与 board 管理组件内部的日志系统无关。idf_injector loaded 仅在 当前 idf.py 进程 进入扩展自举时打印一次——不会在组件下载等环节启动的每个 Python 子进程里重复打印。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file esp_bmgr_assist-0.2.0.tar.gz.
File metadata
- Download URL: esp_bmgr_assist-0.2.0.tar.gz
- Upload date:
- Size: 17.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e21499861514177db2288987464eda94eec2c8f2b15e7cbb3f99eed6337de96
|
|
| MD5 |
34d7f8ccd63caa7b39e9ba4f04e83a2d
|
|
| BLAKE2b-256 |
55dff6cd918c214e1977be41b413bc4e3de440f3de6706953a1412e1bbd770fe
|
File details
Details for the file esp_bmgr_assist-0.2.0-py3-none-any.whl.
File metadata
- Download URL: esp_bmgr_assist-0.2.0-py3-none-any.whl
- Upload date:
- Size: 14.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fcfa766d81d2ab674e513a08c5ffd419715a1608907092c7d4cf6a8f7f31fb89
|
|
| MD5 |
3e4bf1ba1108c8d0378d34408cada109
|
|
| BLAKE2b-256 |
0adce79eaaa24416c3690b71207027e472f8e6e5c2eef601cf04ab44e3222701
|