Anaconda环境下运行Selenium报SSL模块不可用的HTTPS连接错误求解
问题核心根因
报错的核心触发点是当前Anaconda虚拟环境的Python解释器未关联可用的OpenSSL模块,导致所有依赖HTTPS的请求都会直接抛出SSL不可用的错误——和ChromeDriver版本匹配无关,本质是环境层面无法发起加密网络请求。
分步修复方案
- 第一步:定位确认问题
- 激活出问题的虚拟环境:
conda activate web-scraper - 在当前环境的Python交互终端执行测试代码:
import ssl print(ssl.OPENSSL_VERSION) - 若执行后直接抛出
ModuleNotFoundError或提示SSL模块缺失,即可确认是环境依赖问题。
- 激活出问题的虚拟环境:
- 第二步:补全SSL核心依赖
必须通过conda渠道安装对应依赖,避免pip安装的库和Anaconda环境的Python解释器无法关联:- 在激活的虚拟环境中执行安装命令:
conda install -c conda-forge openssl ca-certificates certifi - 安装完成后重新执行之前的SSL测试代码,能正常输出OpenSSL的版本信息即代表基础依赖修复完成。
- 同步更新环境内的网络请求相关依赖,避免版本兼容问题:
pip install --upgrade requests urllib3 certifi
- 在激活的虚拟环境中执行安装命令:
- 第三步:绕开自动下载逻辑的备选方案
如果上述步骤完成后,webdriver_manager联网拉取ChromeDriver仍然受网络访问限制报错,可以直接手动配置ChromeDriver路径,跳过自动下载环节:- 打开本地Chrome浏览器,在地址栏输入
chrome://settings/help,记录下浏览器的完整版本号(和报错提示的版本号匹配即可)。 - 手动下载对应版本的ChromeDriver可执行文件,解压后在代码中指定路径初始化浏览器,示例代码:
from selenium import webdriver from selenium.webdriver.chrome.service import Service # 替换为本地chromedriver.exe的实际存储路径 service = Service(r"C:\Users\Nick\Downloads\chromedriver.exe") driver = webdriver.Chrome(service=service, options=options)
- 打开本地Chrome浏览器,在地址栏输入
- 极端情况修复
若多次尝试后环境仍然存在SSL模块缺失问题,直接删除有问题的虚拟环境,创建新环境时预装核心依赖,避免后续依赖冲突:- 删除异常环境:
conda env remove -n web-scraper - 创建新环境时直接绑定SSL相关依赖:
conda create -n web-scraper python=3.10 openssl ca-certificates certifi requests - 激活新环境后再安装Selenium相关依赖即可正常运行。
- 删除异常环境:
注意事项
- 不要直接把Anaconda base环境下的OpenSSL相关库文件复制到子环境中,会打乱conda的依赖管理逻辑,触发更多不可预期的报错。
- 安装依赖时优先使用conda渠道安装系统级的加密、证书类库,再用pip安装Python第三方包,避免出现解释器找不到对应库的问题。
内容的提问来源于stack exchange,提问作者nick。
相关产品推荐
相关产品推荐

