加载YOLOv5时遭遇SSL证书验证失败问题求助
YOLOv5本地加载SSL证书错误解决方法
我需要在本地配合OpenCV使用YOLOv5模型(Colab无法访问本地摄像头),执行以下代码加载模型时出现SSL证书验证失败的错误:
model = torch.hub.load('ultralytics/yolov5', 'yolov5s', classes=30) model.load_state_dict(torch.load('/PycharmProjects/ObjectDetection/best.pt')['model'].state_dict()) model = model.fuse().autoshape()
报错信息
runfile('/Users/lebedev/PycharmProjects/ObjectDetection/loadingmodel.py', wdir='/Users/lebedev/PycharmProjects/ObjectDetection') Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 1346, in do_open ...skipped... ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/lebedev/PycharmProjects/ObjectDetection/venv/lib/python3.9/site-packages/IPython/core/interactiveshell.py", line 3378, in run_code exec(code_obj, self.user_global_ns, self.user_ns) File "<ipython-input-2-21519fa4e2b1>", line 1, in <module> runfile('/Users/lebedev/PycharmProjects/ObjectDetection/loadingmodel.py', wdir='/Users/lebedev/PycharmProjects/ObjectDetection') File "/Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/_pydev_bundle/pydev_umd.py", line 198, in runfile pydev_imports.execfile(filename, global_vars, local_vars) # execute the script File "/Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile exec(compile(contents+"\n", file, 'exec'), glob, loc) File "/Users/lebedev/PycharmProjects/ObjectDetection/loadingmodel.py", line 6, in <module> model = torch.hub.load('ultralytics/yolov5', 'yolov5s', classes=30) File "/Users/lebedev/PycharmProjects/ObjectDetection/venv/lib/python3.9/site-packages/torch/hub.py", line 537, in load repo_or_dir = _get_cache_or_reload(repo_or_dir, force_reload, trust_repo, "load", File "/Users/lebedev/PycharmProjects/ObjectDetection/venv/lib/python3.9/site-packages/torch/hub.py", line 180, in _get_cache_or_reload repo_owner, repo_name, ref = _parse_repo_info(github) File "/Users/lebedev/PycharmProjects/ObjectDetection/venv/lib/python3.9/site-packages/torch/hub.py", line 133, in _parse_repo_info with urlopen(f"https://github.com/{repo_owner}/{repo_name}/tree/main/"): File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 214, in urlopen return opener.open(url, data, timeout) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 517, in open response = self._open(req, data) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 534, in _open result = self._call_chain(self.handle_open, protocol, protocol + File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 494, in _call_chain result = func(*args) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 1389, in https_open return self.do_open(http.client.HTTPSConnection, req, File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 1349, in do_open raise URLError(err) urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)>
解决方案
方法1:本地克隆仓库加载(推荐)
直接把YOLOv5仓库下载到本地,避免联网请求触发SSL验证:
- 克隆仓库到项目目录:
git clone https://github.com/ultralytics/yolov5.git
- 修改加载代码,从本地路径加载自定义权重:
# 从本地YOLOv5仓库加载自定义模型 model = torch.hub.load('./yolov5', 'custom', path='/PycharmProjects/ObjectDetection/best.pt', source='local') model = model.fuse().autoshape()
说明:
source='local'指定本地加载,无需联网;custom参数直接加载你的训练权重best.pt,无需额外调用load_state_dict。
方法2:临时跳过SSL验证(仅测试用)
如果只是临时调试,可在代码开头添加以下代码绕过SSL验证:
import ssl ssl._create_default_https_context = ssl._create_unverified_context
此方法会降低安全性,不建议在生产环境使用。
方法3:修复Mac系统Python证书
从报错路径看是Mac自带Python的证书缺失,执行以下步骤修复:
- 打开终端运行:
open /Applications/Python\ 3.9/Install\ Certificates.command
- 等待证书安装完成后,重启Python环境再尝试加载模型。
内容的提问来源于stack exchange,提问作者LEbEdEV
相关产品推荐
相关产品推荐

