Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 此URLOpen错误的原因是什么_Python_Windows_Debugging_Urllib2 - Fatal编程技术网

Python 此URLOpen错误的原因是什么

Python 此URLOpen错误的原因是什么,python,windows,debugging,urllib2,Python,Windows,Debugging,Urllib2,我的Python代码从我们的网站下载一个文件。代码无法在某些客户端计算机上下载文件。我一辈子都搞不懂为什么脚本在某些计算机上运行而在其他计算机上运行时文件无法下载 某些计算机上发生的错误是: <urlopen error [Errno 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established co

我的Python代码从我们的网站下载一个文件。代码无法在某些客户端计算机上下载文件。我一辈子都搞不懂为什么脚本在某些计算机上运行而在其他计算机上运行时文件无法下载

某些计算机上发生的错误是:

<urlopen error [Errno 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>

PS:您认为这是代理错误吗?如果是,你能解释到底出了什么问题吗?代理总是让我困惑——我知道当使用代理时,所有http、https、ftp请求都会在进入互联网之前通过代理计算机(中间层),但我不明白代理是如何导致此错误的?出什么事了?发生了什么?

可能是代理,或者查看错误消息,也可能是本地/个人防火墙设置阻止了来自应用程序的传出请求,或者服务器的响应无法到达应用程序。本地防火墙设置很容易因计算机而异,这可能就是问题的原因。

考虑使用
请求
库,它更易于使用。工作的计算机和不工作的计算机之间有什么区别吗。e、 g不同的操作系统,不同版本的Python等@mhawke我已经确认他们使用的是Windows 7操作系统,与Python 2.7版本相同。我不能确定的一件事是他们的网络设置(如果他们使用代理等),因为他们不是最专业的用户,也不知道。谢谢你的回答。你认为因为他们可以使用网络浏览器(但不能在我的脚本中)下载文件,这意味着它不是代理吗?因为代理也会禁止浏览器下载?如果是防火墙阻止出/入请求。有什么我能做的吗这当然不是黑客行为。或者,我唯一的解决方案是联系该公司并要求其IT部门将我的脚本和/或url添加到排除列表中?这可能是代理问题,但也可能是防火墙之类的其他问题。某些防火墙允许您基于每个应用程序授予权限,因此可能允许浏览器(可能通过代理间接),但您的应用程序不允许。您需要首先确定问题的原因,而不是猜测。要做到这一点,您需要向用户提出正确的问题,或者访问受影响的计算机。另一种策略是尝试在您的开发环境中复制问题。您是否尝试过使用代理和/或防火墙进行测试,或者您有过的其他想法?
try:

    source_buffer = urllib2.urlopen(URL)
    source_code = source_buffer.read()
    source_buffer.close()
    return source_code

except Exception, e:
    print e