Python Django Errno 54 '连接被对等方重置'

新手上路,请多包涵

调试时遇到一些麻烦。当我第一次启动我的应用程序时,我总是收到此错误,然后间歇性地收到此错误。有人可以通过抛出一些调试技术来帮助我吗?我试过使用代理检查器 - 无济于事,我没有看到任何有用的东西。我已经尝试了关于在我的 Django 设置中设置我的 SITE_URL 的建议。我试过有和没有 http:// 有和没有端口…这是无用的错误:

 Exception happened during processing of request from ('127.0.0.1', 57917)
Traceback (most recent call last):
  File "/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/socketserver.py", line 650, in process_request_thread
    self.finish_request(request, client_address)
  File "/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/socketserver.py", line 360, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/socketserver.py", line 720, in __init__
    self.handle()
  File "/Users/ryan/.local/share/virtualenvs/portal-2PUjdB8V/lib/python3.7/site-packages/django/core/servers/basehttp.py", line 171, in handle
    self.handle_one_request()
  File "/Users/ryan/.local/share/virtualenvs/portal-2PUjdB8V/lib/python3.7/site-packages/django/core/servers/basehttp.py", line 179, in handle_one_request
    self.raw_requestline = self.rfile.readline(65537)
  File "/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/socket.py", line 589, in readinto
    return self._sock.recv_into(b)
ConnectionResetError: [Errno 54] Connection reset by peer

即使此连接重置,该应用程序似乎也能正常运行,但它一直让我疯狂地尝试调试。

原文由 archae0pteryx 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 555
2 个回答

FFS……太蠢了。我注意到它总是在找不到 favicon 后重置,所以我添加了一个…即使我从未明确加载过一个,django 似乎尝试从项目的根目录加载一个默认的…这不会发生对于从事该项目的任何其他开发人员。诡异的。 (为了完整性)如果其他人偶然发现了这个,我使用 favicon io 制作了一个简单的文本。然后我像这样将它加载到我的 html 中:

 {% load static %}
<!DOCTYPE html>
<html lang="en">

<head>
  <link rel="shortcut icon" href="{% static 'images/favicon.ico' %}" />
...

请务必在设置中正确设置您的静态路径。

原文由 archae0pteryx 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果 favicon 是 .png 格式而不是 .ico,则会看到相同的行为。

此外,与其他网站上的建议相反,将 Python 降级到 v3.6 并不能解决问题。 错误 w. 的屏幕截图png图标

似乎是一个 Django 问题,它可能会在未来的 Django 版本中永久修复。

https://bugs.python.org/issue27682#msg348302 之后,我做了如下所示的更改: 代码更改

然后,我将 BrokenPipeError 替换为 ConnectionAbortedError。这似乎可以处理异常。

Django 3 更新:我对 basehttp.py (rev.1.2.1) 进行了以下更改,以消除所有讨厌的破损管道错误消息:

 Line 55: - return issubclass(exc_type, BrokenPipeError)
Line 55: + return issubclass(exc_type, (BrokenPipeError, ConnectionAbortedError, ConnectionResetError))

Line 71: - logger.info("- Broken pipe from %s\n", client_address)
Line 71: + pass

原文由 Chris 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题