(smol-env) [heng2@localhost SmolDocling-256M-preview]$ python Python 3.8.18 (default, Mar 21 2025, 23:18:16) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from transformers import pipeline Error importing huggingface_hub.hf_api: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'OpenSSL 1.0.2k-fips 26 Jan 2017'. See: https://github.com/urllib3/urllib3/issues/2168 Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/heng2/smol-env/lib/python3.8/site-packages/transformers/__init__.py", line 26, in <module> from . import dependency_versions_check File "/home/heng2/smol-env/lib/python3.8/site-packages/transformers/dependency_versions_check.py", line 16, in <module> from .utils.versions import require_version, require_version_core File "/home/heng2/smol-env/lib/python3.8/site-packages/transformers/utils/__init__.py", line 21, in <module> from huggingface_hub import get_full_repo_name # for backward compatibility File "/home/heng2/smol-env/lib/python3.8/site-packages/huggingface_hub/__init__.py", line 962, in __getattr__ submod = importlib.import_module(submod_path) File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "/home/heng2/smol-env/lib/python3.8/site-packages/huggingface_hub/hf_api.py", line 46, in <module> import requests File "/home/heng2/smol-env/lib/python3.8/site-packages/requests/__init__.py", line 43, in <module> import urllib3 File "/home/heng2/smol-env/lib/python3.8/site-packages/urllib3/__init__.py", line 42, in <module> raise ImportError( ImportError: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'OpenSSL 1.0.2k-fips 26 Jan 2017'. See: https://github.com/urllib3/urllib3/issues/2168
时间: 2025-07-09 14:51:49 浏览: 3
<think>好的,我现在需要处理用户遇到的Python导入错误。用户在使用Hugging Face的transformers库时,遇到了urllib3与OpenSSL版本不兼容的问题。首先,我得仔细看看错误信息。
错误信息显示urllib3 v2需要OpenSSL 1.1.1+,而当前系统使用的是OpenSSL 1.0.2k-fips。这说明用户的系统环境中的OpenSSL版本过低,导致依赖库urllib3无法正常工作。用户可能是在一个较旧的Linux发行版上运行,比如CentOS 7,因为默认的OpenSSL版本较低。
接下来,我需要考虑可能的解决方案。常见的解决方法包括降级urllib3到兼容旧版OpenSSL的版本,或者升级系统的OpenSSL。但升级系统OpenSSL可能涉及复杂的编译过程,并且可能影响其他系统组件,存在风险。对于普通用户来说,降级urllib3可能是更简单和安全的选择。
另外,用户使用的是Python 3.8.18,这个版本是否支持新的库版本也需要确认。不过,错误信息明确指向urllib3 v2的问题,所以降级到v1.x应该可以解决问题。同时,需要确保其他依赖库如requests、huggingface_hub等也兼容urllib3的旧版本。
用户可能已经通过虚拟环境(smol-env)安装这些包,所以需要指导他们在虚拟环境中执行pip命令来降级urllib3。此外,检查是否还有其他依赖冲突,比如transformers库的版本是否与urllib3 1.x兼容。如果用户之前安装的是最新版transformers,可能需要指定一个稍早的版本以确保兼容性。
如果降级urllib3后仍然存在问题,可能需要进一步检查系统OpenSSL的升级可能性,或者考虑使用Docker容器来提供一个兼容的环境,这样用户无需修改主机系统即可运行所需的库。
另外,用户之前可能因为网络问题使用了git的sslVerify关闭选项,现在又遇到库的依赖问题,可能需要综合解决环境和网络配置。需要提醒用户,虽然关闭sslVerify可以临时解决问题,但存在安全风险,建议仅在测试环境使用。
最后,总结步骤:降级urllib3,安装兼容的库版本,检查依赖关系,考虑系统升级或容器化方案。同时,提供验证步骤确保问题解决,比如重新运行Python导入命令。</think>---
### 一、错误原因分析
这个错误的核心是 **OpenSSL版本过低** 导致依赖库 `urllib3 v2.x` 不兼容。具体表现为:
1. 系统当前使用的 `OpenSSL 1.0.2k`(发布于2017年)已过时
2. `urllib3` 从2.x版本开始强制要求 `OpenSSL 1.1.1+`
3. `huggingface_hub` 和 `requests` 库依赖 `urllib3`,导致整个链条崩溃
---
### 二、解决方案
#### 方法1:降级urllib3到兼容版本(推荐)
在Python环境中安装 `urllib3 1.x` 系列版本(兼容旧版OpenSSL):
```bash
# 进入虚拟环境后执行
(smol-env) pip install "urllib3<2.0" --force-reinstall
# 同时可能需要降级requests库
(smol-env) pip install "requests<2.30.0" --force-reinstall
```
#### 方法2:升级系统OpenSSL(需管理员权限)
```bash
# CentOS/RHEL系统示例
sudo yum install openssl11 openssl11-devel
# 重新编译Python时需要指定新OpenSSL路径
./configure --with-openssl=/usr/include/openssl11
```
#### 方法3:使用Docker环境(避免系统修改)
```bash
# 拉取预装新版本OpenSSL的Python镜像
docker run -it python:3.8-bookworm /bin/bash
# 在容器内安装依赖
pip install transformers huggingface_hub
```
---
### 三、附加说明
1. **为什么需要OpenSSL 1.1.1+?**
- 安全性增强:支持TLS 1.3、更安全的加密算法
- 性能优化:支持异步I/O、ALPN等新特性
- 社区维护:OpenSSL 1.0.x已于2019年停止官方支持
2. **检查OpenSSL版本**:
```bash
openssl version
# 如果输出为 "OpenSSL 1.0.2k-fips",则需升级
```
3. **验证修复**:
```python
# 修复后应能正常导入
>>> from transformers import pipeline
>>> print(pipeline('text-generation')("Hello, world!"))
```
---
### 四、兼容性矩阵
| 组件 | 最低要求版本 | 推荐版本 |
|-----------------|--------------|-------------|
| OpenSSL | 1.1.1 | 3.0.x |
| urllib3 | 1.26.x | 1.26.16 |
| requests | 2.27.x | 2.28.2 |
| huggingface_hub | 0.14.x | 0.19.4 |
| transformers | 4.25.x | 4.37.2 |
---
### 五、补充建议
1. 如果使用企业服务器,请联系管理员升级系统基础库
2. 长期方案建议迁移到较新的Linux发行版(如Ubuntu 22.04 LTS)
3. 可通过 `pyenv` 管理多版本Python环境,隔离系统依赖
通过上述任一方法应能解决OpenSSL版本冲突问题,建议优先选择方法1快速恢复工作环境。
阅读全文
相关推荐


















