1
gevents를 사용하여 웹에서 일부 이미지를 다운로드하려고합니다. 이미지 다운로드하지만 작업에 합류 할 때 다음과 같은 오류가 발생합니다. gevents : 파일을 다운로드 할 때 'TypeError : float가 필요합니다'오류 메시지가 표시됩니다.
pool.join(jobs)
TypeError: a float is required
이미지
다운로드 할 수 있지만 내가 올바르게 스레딩 있다고 생각하지 않는다 ... 아는 사람시겠습니까 내가 잘못 뭘하는지 ..?pool = Pool(3)
N = 3
urls = ['http://commons.wikimedia.org/wiki/File:Ultraviolet_image_of_the_Cygnus_Loop_Nebula_crop.jpg', 'http://commons.wikimedia.org/wiki/File:Ultraviolet_image_of_the_Cygnus_Loop_Nebula_crop.jpg,'http://commons.wikimedia.org/wiki/File:Ultraviolet_image_of_the_Cygnus_Loop_Nebula_crop.jpg'http://commons.wikimedia.org/wiki/File:Ultraviolet_image_of_the_Cygnus_Loop_Nebula_crop.jpg']
finished = 0
def download_file(url):
global finished
print('starting %s' % url)
try:
data = urllib2.urlopen(url, timeout=10000)
except urllib2.URLError, e:
print 'e : ' % e
else:
data = data.read()
filename = os.path.basename(url)
f = open(filename, 'wb')
f.write(data)
f.close()
finally:
finished += 1
with gevent.Timeout(10000000, False):
for x in xrange(10, 10 + N):
jobs = [pool.spawn(download_file, url) for url in urls]
pool.join(jobs)
print('Finished %s' % (finished, N))