renovate 默认不扫描 python 依赖文件,需显式启用 python 支持并配置对应 manager;pyproject.toml 需含 [build-system] 或 [project];python 版本升级需在 packagerules 中单独启用 python 依赖类型。

Renovate 识别不了 pyproject.toml 或 requirements.txt
Renovate 默认不主动扫描 Python 项目依赖文件,必须显式启用 Python 支持,否则它会跳过整个目录。
实操建议:
立即学习“Python免费学习笔记(深入)”;
- 在
renovate.json(或renovate.json5)根配置中,确保启用了"enabled": true和"packageRules"中未禁用 Python - 显式添加
"managers": ["pip", "poetry", "pipenv"]到"platform"或全局"extends"配置中(Renovate v35+ 推荐用"enabledManagers") - 检查日志里是否有类似
Found 0 package files的提示——这说明 Renovate 根本没找到依赖文件,大概率是路径没匹配上或 manager 被禁用 -
pyproject.toml必须含[build-system]或[project](PEP 621)区块,否则 Renovate 不认为它是有效 Python 配置
pip vs poetry vs pipenv 的配置差异
Renovate 对不同 Python 包管理器的解析逻辑、更新策略和依赖锁定行为完全不同,混用会导致版本混乱或 PR 失败。
实操建议:
立即学习“Python免费学习笔记(深入)”;
-
pip管理requirements.txt:需配合requirementsmanager,支持--upgrade-strategy=eager类参数,但不解析setup.py -
poetry管理pyproject.toml:依赖poetry.lock文件存在,Renovate 会比对pyproject.toml中的dependencies并重生成 lock;若 lock 缺失,PR 会失败 -
pipenv依赖Pipfile+Pipfile.lock:Renovate 不会运行pipenv update,只做文本级 diff,因此Pipfile.lock必须由人手或 CI 提前生成并提交 - 不要在同一个 repo 同时启用多个 Python manager,Renovate 可能并发修改同一份
pyproject.toml,造成冲突
Python 版本升级(如 python = "^3.9")为什么没触发 PR?
Renovate 默认把 Python 自身版本当作“工具依赖”,而非“包依赖”,除非明确配置,否则不会监控或升级 pyproject.toml 中的 requires-python 或 tool.poetry.dependencies.python。
在线商城系统(完整无错修复版) v2.2无功能屏蔽,包括完整的前后台。系统是易于修改的、完全免费的网络商城系统。该系统界面简洁,有专业人士开发,属于较成熟的Asp商城系统。 该套网上商城系统从今日起正式免费完整开源发布,并不断升级其功能。允许个人按照自己的意愿修改和配置。 我们今后还会定期的进行升级和修改。遇到问题请到官方及时提交,我们会在每月固定式时间段,根据您发布的BUG进行统一纠正修改。
实操建议:
立即学习“Python免费学习笔记(深入)”;
- 在
packageRules中加一条匹配 Python 版本字段的规则,例如:
{
"matchDepTypes": ["python"],
"enabled": true,
"rangeStrategy": "bump"
}
pyproject.toml 中 Python 版本写法规范:requires-python = ">=3.9,(PEP 621)或 <code>python = "^3.9"(Poetry),Renovate 不识别注释里的版本或 runtime.txt
.github/workflows/test.yml 中的 python-version),这部分得靠自定义 postUpgradeTasks 或手动维护Renovate PR 提交后 CI 报 ModuleNotFoundError 或 poetry install 失败
常见原因是 Renovate 更新了依赖但没同步更新锁文件,或锁文件更新后与当前环境不兼容,尤其在跨 minor 版本升级时容易暴露隐式依赖冲突。
实操建议:
立即学习“Python免费学习笔记(深入)”;
- 对
poetry项目,确保renovate.json中设置了"lockFileMaintenance": {"enabled": true},否则poetry.lock不会随依赖更新自动重生成 - CI 流程中不要跳过
poetry install --no-root或pip install -r requirements.txt,Renovate 不保证 lock 文件 100% 可安装,尤其当上游 PyPI 包临时下线时 - 避免在
packageRules中对dev-dependencies使用"updateType": "pin",这可能导致测试工具(如pytest)被锁死,进而让 CI 因版本不兼容失败 - 如果频繁遇到
poetry install卡住,考虑在 CI 中加poetry config virtualenvs.create false,避免 Renovate PR 触发全新虚拟环境创建
Python 生态的依赖关系不是线性的,Renovate 的更新逻辑基于静态文件分析,它看不到 setup.py 动态 import、extras_require 条件分支,也管不了 conda 或系统级 Python 包。真要覆盖全场景,得靠精准的 manager 配置 + 锁文件维护 + CI 验证闭环,少一个环节就容易漏掉。









