执行pre-commit install-hooks报错(SSLError)求助
解决conda环境下pre-commit install-hooks的SSL模块不可用问题
可行解决方案:
- 强制pre-commit使用当前conda环境的Python
pre-commit可能误调用了无SSL支持的Python版本,直接指定conda环境的Python路径执行:
# 先确认当前conda环境的Python路径 which python # 用该路径执行install-hooks pre-commit install-hooks --python $(which python)
- 重建conda环境的SSL支持
如果conda环境的Python缺失SSL模块,重新安装openssl和对应版本的Python:
conda activate your_env_name conda remove --force openssl python conda install openssl python=3.8 # 替换为你的环境Python版本
- 提前用conda安装hook依赖,避免pip下载
先通过conda安装所有hook需要的依赖包,让pre-commit直接使用本地已安装的版本:
conda activate your_env_name conda install ruamel.yaml black isort pre-commit-hooks pre-commit install-hooks
也可以在.pre-commit-config.yaml中指定用conda管理依赖(仅部分hook支持),比如修改black的配置:
- repo: https://github.com/psf/black rev: stable hooks: - id: black language_version: python3.8 language: conda additional_dependencies: ['ruamel.yaml']
- 检查并清理干扰的环境变量
临时取消可能影响SSL验证的环境变量后再执行命令:
unset SSL_CERT_FILE unset REQUESTS_CA_BUNDLE pre-commit install-hooks
如果有效,排查这些变量的来源,比如conda环境的激活脚本是否错误设置了它们。
内容的提问来源于stack exchange,提问作者karu
相关产品推荐
相关产品推荐

