pre-commit更新后报InvalidManifestError:language字段值不符合要求
解决pre-commit更新后出现InvalidManifestError的问题
问题核心是pre-commit更新后不再支持python_venv这个语言类型,该类型已经被合并到python选项中(pre-commit的python语言现在默认使用虚拟环境,和原python_venv功能完全一致)。
解决步骤:
修改目标仓库的hook配置:
找到报错仓库(https://example.com/some/repo)中的.pre-commit-hooks.yaml文件,将language: python_venv替换为language: python。如果是你维护的仓库,直接提交修改即可。在本地配置中覆盖设置(第三方仓库场景):
如果这个仓库是第三方维护的,暂时无法等待作者更新,可以在自己项目的.pre-commit-config.yaml里,针对该hook添加语言覆盖配置:- repo: https://example.com/some/repo rev: 你的使用版本号 hooks: - id: some-hook-id language: python # 这里覆盖原有的python_venv设置临时回退pre-commit版本(不推荐长期使用):
若以上方案暂时无法执行,可以回退到之前能正常运行的pre-commit版本,比如:pip install pre-commit==<你之前用的版本号>
内容的提问来源于stack exchange,提问作者anthony sottile
相关产品推荐
相关产品推荐

