在 Windows 环境下使用 Conda 运行 PaddleX、PaddleOCR 或 HuggingFace 相关代码时,经常遇到以下连环报错:

Error importing huggingface_hub._snapshot_download: DLL load failed while importing _ssl: 找不到指定的模块。
Can't connect to HTTPS URL because the SSL module is not available.

问题根因:当前 Conda 环境中的 Python 缺少可用的 OpenSSL/SSL 支持,或者依赖的 Visual C++ 运行库缺失,导致无法通过 HTTPS 协议下载模型或访问网络资源。

本文提供从环境修复手动绕过的完整解决方案,建议按顺序尝试。


🛠️ 方案一:强制重装 OpenSSL(最推荐)

这是解决 Conda 环境下 _ssl 模块丢失最直接、最有效的方法。

1. 激活环境

conda activate envs  # 替换为你的实际环境名

2. 强制重装核心依赖

conda install openssl --force-reinstall
conda install certifi urllib3 requests --force-reinstall

3. 验证修复结果

执行以下命令,如果能正常打印版本号,说明 SSL 已恢复:

python -c "import ssl; print(ssl.OPENSSL_VERSION)"
# 预期输出示例: OpenSSL 1.1.1w  11 Sep 2023

🔧 方案二:补全 Visual C++ 运行库

Windows 上 Python 的 _ssl.pyd 底层依赖系统的 C++ 运行库。如果系统缺失,即使 Conda 里有 OpenSSL 也会报 DLL load failed

  1. 前往微软官方下载:Microsoft Visual C++ 2015-2022 Redistributable (x64)
  2. 下载 vc_redist.x64.exe 并安装。
  3. 重启终端或 IDE,再次运行程序。

📂 方案三:手动放置模型(绕过下载)

如果网络环境恶劣或 SSL 问题暂时无法彻底解决,可以直接手动部署模型,跳过自动下载步骤。

1. 确认目标路径

根据报错日志,模型期望存放位置通常为:

C:\Users\XX\.paddlex\official_models\PP-LCNet_x1_0_textline_ori

2. 获取模型文件

  • 从 PaddleX/PaddleOCR 官方 Gitee/GitHub Release 页面下载对应模型包。
  • 或从其他正常联网的机器上拷贝该文件夹。

3. 放置并验证

将完整的模型文件夹(包含 .pdmodel, .pdiparams, .json 等文件)放入上述路径。

原理:PaddleX 启动时会优先检查本地缓存目录,若文件完整则直接加载,不再发起 HTTPS 请求


⚙️ 方案四:检查环境变量冲突(进阶)

如果以上方案均无效,可能是系统 PATH 中存在冲突的 DLL 或错误的 SSL 证书路径。

  1. 检查 PATH 优先级
    确保 C:\Users\XX\miniconda3\envs\pyside6 及其 Library\bin 目录在系统 PATH 中优先于其他 Python 安装路径(如系统自带 Python、Anaconda 全局路径等)。

  2. 清理 SSL 相关变量
    检查用户变量中是否存在以下变量,若指向不存在的路径请删除或修正:

    • SSL_CERT_FILE
    • REQUESTS_CA_BUNDLE

📊 方案对比与总结

方案 适用场景 难度 推荐指数
方案一 Conda 环境 SSL 模块损坏/丢失 ⭐⭐⭐⭐⭐
方案二 新装系统/纯净环境/重装后报错 ⭐⭐ ⭐⭐⭐⭐
方案三 内网环境/网络极差/急需运行 ⭐⭐ ⭐⭐⭐
方案四 多 Python 环境混用/路径污染 ⭐⭐⭐ ⭐⭐

💡 最终建议

90% 的情况下,执行 方案一 即可解决问题。如果依然报错,请务必检查 方案二 的 VC++ 运行库。只有在网络完全不可用时,才考虑 方案三 的手动部署方式。


Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐