使用Nexus仓库时pre-commit安装依赖失败:找不到setuptools>=40.8.0
解决企业Nexus仓库环境下pre-commit hooks安装setuptools版本匹配问题
在配置pip使用内部Nexus仓库的Windows企业环境中,执行pre-commit run --all-files时出现无法找到满足setuptools>=40.8.0要求版本的错误,可按以下步骤排查解决:
1. 升级本地环境的setuptools
先检查当前setuptools版本:
pip show setuptools
若版本低于40.8.0,通过内部仓库手动升级:
pip install --upgrade setuptools --index-url https://nexus3.devops.lloydsbanking.com/repository/python-proxy/simple
2. 强制pre-commit使用内部pip索引
pre-commit的隔离环境可能未读取系统pip配置,可通过两种方式指定索引:
- 修改pre-commit配置文件:在项目的
.pre-commit-config.yaml中给目标hook添加带索引参数的依赖声明:repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.4.0 # 替换为你实际使用的版本 hooks: - id: check-yaml # 示例hook,替换为你的hook列表 # 其他hook配置项 additional_dependencies: - setuptools>=40.8.0 --index-url https://nexus3.devops.lloydsbanking.com/repository/python-proxy/simple - 临时设置环境变量:在执行pre-commit命令前,指定pip索引环境变量:
若需永久生效,可在Windows系统环境变量中添加set PIP_INDEX_URL=https://nexus3.devops.lloydsbanking.com/repository/python-proxy/simple pre-commit run --all-filesPIP_INDEX_URL并设置对应值。
3. 检查Nexus仓库同步状态
联系内部DevOps团队确认Nexus的Python代理仓库是否同步了setuptools>=40.8.0的包版本,若未同步,需触发仓库同步或手动上传对应版本的setuptools包到Nexus。
4. 清理pre-commit缓存环境
pre-commit会缓存hook的隔离环境,清理缓存后重新安装可消除旧配置影响:
pre-commit clean pre-commit run --all-files
内容的提问来源于stack exchange,提问作者Nikhila Akula
相关产品推荐
相关产品推荐

