如何解决通过示例第 5 章 urllib.error.URLError
我被困在关于我在书中遵循的书签工具的第 5 章。 我正在使用 Django 3.1 和以下版本(我已经检查了几乎 10 次)这个版本
GitHub:[https://github.com/PacktPublishing/Django-3-by-Example/tree/master/Chapter05]
但我仍然有这个错误:urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_Failed] certificate verify Failed: unable to get local issuer certificate (_ssl.c:1108)>
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/urllib/request.py",line 1319,in do_open
h.request(req.get_method(),req.selector,req.data,headers,File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/http/client.py",line 1230,in request
self._send_request(method,url,body,encode_chunked)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/http/client.py",line 1276,in _send_request
self.endheaders(body,encode_chunked=encode_chunked)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/http/client.py",line 1225,in endheaders
self._send_output(message_body,line 1004,in _send_output
A message_body may be specified,to be appended to the request.
"""
self._buffer.extend((b"",b""))
msg = b"\r\n".join(self._buffer)
del self._buffer[:]
self.send(msg)
if message_body is not None:
# create a consistent interface to message_body
if hasattr(message_body,'read'):
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/http/client.py",line 944,in send
self.connect()
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/http/client.py",line 1399,in connect
self.sock = self._context.wrap_socket(self.sock,File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ssl.py",line 500,in wrap_socket
return self.sslsocket_class._create(
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ssl.py",line 1040,in _create
self.do_handshake()
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ssl.py",line 1309,in do_handshake
self._sslobj.do_handshake()
During handling of the above exception,another exception occurred:
File "/Users/ricardoponce/Documents/WebSocial/venv/lib/python3.8/site-packages/django/contrib/staticfiles/handlers.py",line 76,in __call__
return self.application(environ,start_response)
File "/Users/ricardoponce/Documents/WebSocial/venv/lib/python3.8/site-packages/django/core/handlers/wsgi.py",line 133,in __call__
response = self.get_response(request)
File "/Users/ricardoponce/Documents/WebSocial/venv/lib/python3.8/site-packages/django/core/handlers/base.py",line 128,in get_response
response = self._middleware_chain(request)
File "/Users/ricardoponce/Documents/WebSocial/venv/lib/python3.8/site-packages/django/core/handlers/exception.py",line 49,in inner
response = response_for_exception(request,exc)
File "/Users/ricardoponce/Documents/WebSocial/venv/lib/python3.8/site-packages/django/core/handlers/exception.py",line 103,in response_for_exception
response = handle_uncaught_exception(request,get_resolver(get_URLconf()),sys.exc_info())
File "/Users/ricardoponce/Documents/WebSocial/venv/lib/python3.8/site-packages/django/core/handlers/exception.py",line 138,in handle_uncaught_exception
return debug.technical_500_response(request,*exc_info)
File "/Users/ricardoponce/Documents/WebSocial/venv/lib/python3.8/site-packages/django_extensions/management/technical_response.py",line 37,in null_technical_500_response
six.reraise(exc_type,exc_value,tb)
File "/Users/ricardoponce/Documents/WebSocial/venv/lib/python3.8/site-packages/six.py",line 702,in reraise
raise value.with_traceback(tb)
File "/Users/ricardoponce/Documents/WebSocial/venv/lib/python3.8/site-packages/django/core/handlers/exception.py",line 47,in inner
response = get_response(request)
File "/Users/ricardoponce/Documents/WebSocial/venv/lib/python3.8/site-packages/django/core/handlers/base.py",line 179,in _get_response
response = wrapped_callback(request,*callback_args,**callback_kwargs)
File "/Users/ricardoponce/Documents/WebSocial/venv/lib/python3.8/site-packages/django/contrib/auth/decorators.py",line 21,in _wrapped_view
return view_func(request,*args,**kwargs)
File "/Users/ricardoponce/Documents/WebSocial/bookmarks/images/views.py",line 23,in image_create
new_item = form.save(commit=False)
File "/Users/ricardoponce/Documents/WebSocial/bookmarks/images/forms.py",line 35,in save
response = request.urlopen(image_url)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/urllib/request.py",line 222,in urlopen
return opener.open(url,data,timeout)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/urllib/request.py",line 525,in open
response = self._open(req,data)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/urllib/request.py",line 542,in _open
result = self._call_chain(self.handle_open,protocol,protocol +
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/urllib/request.py",line 502,in _call_chain
result = func(*args)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/urllib/request.py",line 1362,in https_open
return self.do_open(http.client.HTTPSConnection,req,File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/urllib/request.py",line 1322,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:1108)>
调试器在您的 Wsgi 应用程序中捕获了一个异常。您现在可以查看导致错误的回溯。
要在交互式回溯和纯文本之间切换,您可以点击“回溯”标题。从文本回溯中,您还可以创建它的粘贴。对于代码执行,将鼠标悬停在要调试的框架上,然后单击右侧的控制台图标。
您可以在堆栈帧中执行任意 Python 代码,还有一些额外的帮助程序可用于自省:
dump() shows all variables in the frame
dump(obj) dumps all that's kNown about the object
brought to you by DON'T PANIC,your friendly Werkzeug powered traceback interpreter.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。