Python生成的EXE在远程桌面运行报WinError 10060错误求助
可能的问题分析
先看报错信息:
Error timestamp: 16082023_044916 Error message: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond Traceback: Traceback (most recent call last): File "pdf_to_email_F.py", line 160, in <module> File "C:\Users\name\AppData\Local\Programs\Python\Python311\Lib\smtplib.py", line 255, in __init__ File "C:\Users\name\AppData\Local\Programs\Python\Python311\Lib\smtplib.py", line 341, in connect File "C:\Users\name\AppData\Local\Programs\Python\Python311\Lib\smtplib.py", line 312, in _get_socket File "C:\Users\name\AppData\Local\Programs\Python\Python311\Lib\socket.py", line 851, in create_connection File "C:\Users\name\AppData\Local\Programs\Python\Python311\Lib\socket.py", line 836, in create_connection TimeoutError: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
从报错栈看,是SMTP连接超时,但结合程序需连接Oracle和发送邮件的需求,可能的问题如下:
网络访问限制:远程桌面所在网络未开放Oracle数据库(默认1521端口)或SMTP服务器(如25、465、587端口)的出站权限。本地网络能正常访问,但远程环境的防火墙、企业网络策略可能拦截了这些请求,导致连接超时。
目标服务不可达:远程桌面的网络无法访问Oracle数据库或邮件服务器。比如数据库是本地内网服务,远程桌面不在同一内网且未打通VPN;或者邮件服务器域名在远程网络无法解析。可在远程桌面用
ping 目标服务器地址或telnet 目标服务器地址 端口测试连通性。打包依赖缺失:若用PyInstaller等工具打包EXE时,Oracle客户端依赖(如instantclient的.dll文件)未正确打包。本地运行依赖系统中的Oracle客户端,但远程桌面未安装,这会导致数据库连接失败(当前报错是SMTP,但也需排查Oracle连接的潜在问题)。
配置参数不兼容:程序里的数据库地址、邮件服务器地址是本地环境配置(如localhost、内网IP),到远程桌面后这些地址无效。比如本地数据库用127.0.0.1,远程桌面的localhost指向自身,自然无法连接;或者SMTP服务器是本地内网服务,远程网络无法访问。
本地安全软件拦截:远程桌面的防火墙、杀毒软件可能阻止了EXE发起网络连接。可临时关闭防火墙测试,或将EXE加入信任列表。
内容的提问来源于stack exchange,提问作者Michael Benning
相关产品推荐
相关产品推荐

