使用setup.cfg构建wheel包后自动清理build与egg-info文件夹的方法
适配setup.cfg的构建临时文件自动清理实现
setuptools 60.0及以上版本已经支持完全通过setup.cfg配置清理规则,不需要依赖旧场景下编写自定义setup.py命令的逻辑,可直接落地的方案有三类:
方案1:打包命令串联(零配置全兼容)
完全不改动现有打包配置,直接将wheel构建命令和清理命令串联,构建流程执行完成后自动触发临时文件删除:
- Linux/macOS Shell 环境:
python -m build --wheel && rm -rf build/ *.egg-info/ - Windows CMD 环境:
python -m build --wheel && rmdir /s /q build && for /d %d in (*.egg-info) do rmdir /s /q %d - Windows PowerShell 环境:
python -m build --wheel; Remove-Item -Recurse -Force build, *.egg-info
该方案不绑定特定打包后端版本,只要能正常生成wheel包即可生效,临时清理规则直接在命令行定义,适合快速使用。
方案2:setup.cfg内置清理规则配置(无自定义代码)
针对以setuptools为打包后端的项目,可将清理规则直接写入现有setup.cfg,全程不需要编写任何setup.py代码:
- 在setup.cfg中新增配置段,指定需要清理的临时路径:
[tool.setuptools.clean] paths = build/ *.egg-info/
- 打包时串联自动触发内置清理逻辑:
python -m build --wheel && python -m setuptools.clean --all
该方案的清理规则和打包元信息统一存放在setup.cfg中,后续如果需要调整清理范围(比如新增其他临时目录),仅需修改setup.cfg对应段落即可,不需要调整命令行。
方案3:自动化工具流水线绑定(适合长期维护项目)
如果项目已经接入tox、nox这类自动化构建工具,可在工具的流程配置中,将「构建wheel包」和「读取setup.cfg规则执行清理」绑定为固定流水线,不需要每次手动输入长命令。工具会自动在构建节点完成后执行清理逻辑,完全和现有setup.cfg配置打通,无额外耦合。
注意:若本地setuptools版本低于60.0,需要先升级到最新稳定版再使用上述setup.cfg配置方案;仅旧版本setuptools才需要依赖setup.py编写自定义清理命令。
内容的提问来源于stack exchange,提问作者Akahs
相关产品推荐
相关产品推荐

