Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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 2.7 连续执行脚本时出现python脚本库错误_Python 2.7 - Fatal编程技术网

Python 2.7 连续执行脚本时出现python脚本库错误

Python 2.7 连续执行脚本时出现python脚本库错误,python-2.7,Python 2.7,运行python脚本从google静态地图图像获取像素点时出错。我从微软那里得到了python脚本 我使用python2.7来执行脚本 最初我运行脚本时没有收到任何错误,但在连续运行3-4小时后,我收到以下错误 Traceback (most recent call last): File "pyscript.py", line 19, in <module> imgBuildings = io.imread(urlBuildings) File "/usr/local/lib/py

运行python脚本从google静态地图图像获取像素点时出错。我从微软那里得到了python脚本 我使用python2.7来执行脚本 最初我运行脚本时没有收到任何错误,但在连续运行3-4小时后,我收到以下错误

Traceback (most recent call last):
File "pyscript.py", line 19, in <module>
imgBuildings = io.imread(urlBuildings)
File "/usr/local/lib/python2.7/dist-packages/skimage/io/_io.py", line 60, in i
with file_or_url_context(fname) as fname:
File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
return self.gen.next()
File "/usr/local/lib/python2.7/dist-packages/skimage/io/util.py", line 29, in
u = urlopen(resource_name)
File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 435, in open
response = meth(req, response)
File "/usr/lib/python2.7/urllib2.py", line 548, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python2.7/urllib2.py", line 473, in error
return self._call_chain(*args)
File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 556, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 403: Forbidden
回溯(最近一次呼叫最后一次):
文件“pyscript.py”,第19行,在
imgBuildings=io.imread(urlBuildings)
文件“/usr/local/lib/python2.7/dist-packages/skimage/io/_-io.py”,第60行,在i
将文件\或\ url\上下文(fname)作为fname:
文件“/usr/lib/python2.7/contextlib.py”,第17行,输入__
返回self.gen.next()
文件“/usr/local/lib/python2.7/dist-packages/skimage/io/util.py”,第29行,在
u=urlopen(资源名称)
文件“/usr/lib/python2.7/urllib2.py”,第154行,在urlopen中
返回opener.open(url、数据、超时)
文件“/usr/lib/python2.7/urllib2.py”,第435行,打开
响应=方法(请求,响应)
http_响应中的文件“/usr/lib/python2.7/urllib2.py”,第548行
“http”、请求、响应、代码、消息、hdrs)
文件“/usr/lib/python2.7/urllib2.py”,第473行出错
返回自我。调用链(*args)
文件“/usr/lib/python2.7/urllib2.py”,第407行,在调用链中
结果=func(*args)
文件“/usr/lib/python2.7/urllib2.py”,第556行,默认为http\u error\u
raise HTTPError(请求获取完整url(),代码,消息,hdrs,fp)
urllib2.HTTPError:HTTP错误403:禁止
由于我是python新手,我不知道如何修复它?这是某种缓存问题吗?
非常感谢您的帮助。

我经常看到这个问题,它是由于间歇性的网络断开错误造成的。try/catch异常处理有一个递归技巧,可以避免这种情况的发生,即使您的网络宕机数小时

解释:您尝试下载。如果失败,下载将再次尝试递归重试1/4,1/2,1,2,4,8,。。。秒后,等待1小时以获得下一次下载。例如,如果您在一家公司工作,网络可能会在周末关闭,但您的代码将只轮询1小时(最多),然后在网络修复后再次恢复

import time

def recursiveBuildingGetter( urlBuildings, waitTime=0.25 ):

  try:
    imgBuildings = io.imread(urlBuildings)
  except:
    print "Warning: Failure at time %f secs for %s" % ( waitTime, str(urlBuildings) )
    waitTime = waitTime * 2.0

    if ( waitTime >  3600.0 ):
      waitTime = 3600.0
    time.sleep(waitTime)

    imgBuildings = recursiveBuildingGetter( urlBuilding, waitTime )
    if ( waitTime == 3600.0 ):
      waitTime = 0.25

  return imgBuildings

我最近在处理从外部源下载的地理位置数据时发现了很多这一点。代码没有足够的弹性来处理您想要的下载问题。您必须将代码放入try中,除非您在一天中每隔一段时间就有可能获得网络丢弃并丢失一些数据包。这很可能就是正在发生的一切。在这种情况下,urllib2下载返回一个异常。这就是你看到的错误。非常感谢埃蒙肯尼。这似乎奏效了。再次感谢。很高兴它成功了,最棒的是你可以使用它进行任何类型的url批量下载。