python - 脚本重启后存在连接错误

标签 python python-3.x

我在 Python 3.7 上执行 HTTP 请求,但如果我在执行过程中出现一些错误并且脚本停止,所有新的 HTTP 请求(即使在重新启动脚本之后)都会出现错误:[Errno 10054] An existing connection被远程主机强制关闭

我必须禁用/启用我的网络,以消除错误。这可能是由于我的 PC/OS 问题,因为该脚本在 RaspberryPi 上运行但在我的 Windows 10 上运行不正常。但我不知道如何修复它。

这里是生成错误的最少代码:

import requests
import json
import urllib.request
import socket

    if __name__ == '__main__':

        params = json.dumps({"toto": "ABCD"}).encode('utf-8')

        try:
            head = {'content-type': 'application/json'}
            #replace http by https, to generate the error, re-writte http, and it will never work again
            url = 'http://www.google.com'
            with requests.post(url, data=params, headers=head) as response:
                print("All is OK: " + str(response))
        except (urllib.error.URLError, socket.timeout) as e:
            print("Error time out: " + str(e.args))
        except Exception as e:
            print("Uknown error: " + str(e.args))

一旦出现错误,如果我想安装新模块,即使是 pip.exe 也会返回相同的错误。

edit1:我试过别的东西:

我有另一个只执行 SQL 请求的脚本,它运行良好。

但是一旦我遇到错误,即使这个也有问题: “在查询期间丢失与 MySQL 服务器的连接 (%s)” % (e,)) pymysql.err.OperationalError: (2013, '在查询期间丢失与 MySQL 服务器的连接([WinError 10054] 现有连接被远程主机强行关闭)')

edit2:我在 Windows 上的 Ubuntu 上安装了 bash,我在同一台 PC 上做同样的事情,但“操作系统不同”,我得到 ProtocolError('Connection aborted.', RemoteDisconnected ('远端关闭连接无响应',))

我在其他 PC (Windows 7) 上试过,和我的问题一样。

@djvg 我检查了 openSSL 版本 (1.1.0i) 和 TSL 版本 (1.2),所以它看起来与 link 兼容。你给。这是 pip freeze 的输出(感谢提示,顺便说一句,我不知道):

certifi==2018.11.29 chardet==3.0.4 cycler==0.10.0 idna==2.8 kiwisolver==1.0.1 matplotlib==3.0.2 numpy==1.15.4 PyMySQL==0.9.3 pyparsing==2.3.0 python-dateutil==2.7.5 requests==2.21.0 six==1.12.0 urllib3==1.24.1

@M.Spiller 我不使用“特殊网络”,如果我在我的专业网络上测试,它不起作用但出现另一个错误(可能是代理问题),所以我使用另一个没有特别安全性的网络.但我不认为这是一个安全问题,因为一旦脚本停止就会出现这个错误。该脚本在树莓派上运行良好。可能是操作系统问题?就像网络板第一次没有正确关闭连接一样。但我不知道如何验证...

@UserX 我无法禁用防火墙:公司政策。我同意你的看法,这可能是原因。是否可以打开另一个连接?还是在脚本崩溃时强制关闭?

最佳答案

我回答我自己的问题:

对于我的情况,这是一个防火墙问题。由于公司政策,我无法修改它的参数,但是在没有防火墙的情况下它可以工作。它不是软件解决方案,而且是一种昂贵的解决方法,但总比没有好。

关于python - 脚本重启后存在连接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54144754/

相关文章:

python-3.x - Python/Pygame - 获取一个正方形以通过类改变颜色

python - 如何修复 <urlopen 错误 [SSL : CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl. c :833)> in Python?

python - 压缩此数据的更快方法是什么?

python-3.x - 应用词形还原时出错

python - 列表理解,其中条件取决于正在生成的列表

python - 使用 argparse 解析带有换行符的文本

python-3.x - Python 字节连接

Python单例: same object but values are different

python - Emacs Pymacs Ropemacs 在 goto 定义后返回到上一个文件

python - 优化创建/运行多个 SQLalchemy 引擎?