You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Python中Requests与Selenium的urllib3版本冲突问题

解决Requests与Selenium的urllib3版本冲突问题

问题重现

运行以下爬虫代码时:

import requests
from bs4 import BeautifulSoup

url = 'http://127.0.0.1:3744/'
response = requests.get(url)
raw_html = response.text 

parsed_html = BeautifulSoup(raw_html, 'html.parser')
print(raw_html)

出现版本冲突错误:

line 57, in <module>     raise RuntimeError('Requests dependency \'urllib3\' must be version >= 1.21.1, < 1.22!') RuntimeError: Requests dependency 'urllib3' must be version >= 1.21.1, < 1.22!

核心矛盾:

  • requests 2.16.0 要求 urllib3 版本范围是 >=1.21.1, <1.22
  • selenium 4.9.1 要求 urllib3[socks] 版本范围是 >=1.26, <3

可行解决方案

1. 更新Requests到兼容高版本urllib3的版本

旧版requests(2.16.0)版本过旧,新版本requests已放宽urllib3的版本限制。执行以下命令更新requests:

pip install --upgrade requests

更新后,requests会自动适配满足selenium要求的urllib3版本(如1.26.x或2.x),同时保证自身兼容性。

2. 使用虚拟环境隔离依赖

如果需要保留不同版本的依赖环境,可通过虚拟环境分别管理:

  • 创建爬虫专属虚拟环境:
    # 创建环境
    python -m venv crawler_env
    # Windows激活
    crawler_env\Scripts\activate
    # Linux/macOS激活
    source crawler_env/bin/activate
    # 安装对应依赖
    pip install requests==2.16.0 urllib3==1.21.1 beautifulsoup4
    
  • 创建selenium专属虚拟环境:
    python -m venv selenium_env
    # 激活环境(同上)
    pip install selenium urllib3>=1.26
    

3. 安装兼容双方的中间版本(谨慎使用)

查找同时满足两者兼容要求的版本组合,比如requests 2.26.0支持urllib3 1.26.x,执行:

pip install requests==2.26.0 urllib3==1.26.0

此方法需测试兼容性,避免潜在的功能异常。

内容的提问来源于stack exchange,提问作者Adryan Taborda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 08:02:51