绝大多数pip install报CERTIFICATE_VERIFY_FAILED错误源于本地Python未正确使用根证书,优先升级certifi并设置SSL_CERT_FILE环境变量可解决90%场景;若仍失败,可临时用--trusted-host跳过验证,但存在安全风险。

pip install 报 CERTIFICATE_VERIFY_FAILED 怎么办
这不是网络连不上,也不是 PyPI 服务器出问题,而是你本地 Python 找不到或没用对根证书。90% 的情况,升级 certifi + 设置环境变量就能解决,不用动代理、不用关验证。
先升级 certifi 并确认它真被用了
很多报错其实是因为 pip 还在读旧版 certifi 里的证书文件,而新版 Let’s Encrypt 根证书(如 ISRG Root X1/X2)根本不在里面。
- 运行
pip install --upgrade certifi(加--user更安全) - 检查路径是否更新:
python -c "import certifi; print(certifi.where())",输出必须是site-packages/certifi/cacert.pem这类真实路径 - 如果路径看起来像
/Applications/Python 3.x/.../cacert.pem,说明你还在用 macOS 安装包自带的旧证书——删掉那个目录下的cacert.pem,强制走 pip 安装的版本
必须设 SSL_CERT_FILE 环境变量
只升级 certifi 不够。Python 的 ssl 模块和 requests 默认不自动加载它,得手动绑定。
TikHub API 多平台数据爬取工具,支持抖音/TikTok/B站等。用户提及以下需求时调用:1) 爬取视频或评论;2) 获取用户信息/粉丝列表;3) 批量下载无水印视频;4) 抖音链接转文字(下载→音频→Whisper pipeline);5) 调用 TikHubAPI。
- macOS/Linux:
export SSL_CERT_FILE=$(python -c "import certifi; print(certifi.where())") - Windows PowerShell:
$env:SSL_CERT_FILE=(python -c "import certifi; print(certifi.where())") - 加到
~/.zshrc或~/.bash_profile里才能永久生效 - 验证是否生效:
python -c "import ssl; print(ssl.get_default_verify_paths())",输出里要有你刚设的路径
什么时候能用 --trusted-host?怎么配才不漏
它只是临时绕过,适合 CI/CD 调试或内网镜像源没配证书的场景。但必须注意:它不是“加在命令末尾就行”,每个要信任的域名都得单独写,且顺序要紧贴 -i 参数之后。
立即学习“Python免费学习笔记(深入)”;
- 比如用清华源:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn requests - PyPI 官方域名实际涉及三个主机:
pypi.org、files.pythonhosted.org、upload.pypi.org,缺一不可 - 长期使用请改配置文件:
~/.pip/pip.conf(Linux/macOS)或%APPDATA%\pip\pip.ini(Windows),写清楚每个trusted-host单独一行
最常被忽略的一点:某些 IDE(如 PyCharm)会缓存解释器配置,升级 certifi 后不重启 Python 控制台,环境变量也不会生效。别只改了 shell 就以为万事大吉。

















