这个错误是由于无法验证SSL证书而导致的,可能是因为系统没有找到相应的根证书或证书存储不完整。以下是几种解决这个问题的方法:
方法一:更新certifi
包
使用pip
更新certifi
包,这个包包含了最新的CA根证书:
pip install --upgrade certifi
方法二:使用自定义的认证根证书文件
如果系统上已经安装了证书,可以明确指定证书路径:
- 找到系统上的
cacert.pem
文件(通常位于路径如/etc/ssl/certs/ca-certificates.crt
)。 - 设置环境变量
SSL_CERT_FILE
指向这个证书文件:
export SSL_CERT_FILE=/path/to/cacert.pem
pip install mysqlclient
方法三:手动安装证书(仅适用于macOS)
如果你使用的是macOS,可以使用Install Certificates.command
脚本来安装证书。
open /Applications/Python\\ 3.x/Install\\ Certificates.command
上面的命令会打开脚本文件,双击以运行它。这个脚本会为你安装所需的证书。
方法四:禁用SSL验证(不推荐)
可以禁用SSL验证来绕过证书验证,但这样做会有安全风险:
pip install mysqlclient --trusted-host pypi.org --trusted-host files.pythonhosted.org
方法五:下载并手动安装包
如果以上方法都不奏效,可以手动下载包并进行安装:
- 使用浏览器访问
https://pypi.org/project/mysqlclient/
找到对应的版本。 - 下载
.whl
文件。 - 使用
pip
安装:
pip install /path/to/downloaded/mysqlclient.whl
尝试这些方法中的任一种,希望可以解决你的问题。如果仍然有问题,建议检查系统的网络配置和防火墙设置,确保你的系统能够访问外部的HTTPS资源。
方法六:通过Homebrew安装
pip install /path/to/downloaded/mysqlclient.whl
尝试这些方法中的任一种,希望可以解决你的问题。如果仍然有问题,建议检查系统的网络配置和防火墙设置,确保你的系统能够访问外部的HTTPS资源。