Python:requests模块在Gevent中引发异常

tldr

如下代码:

import gevent
import gevent.monkey
gevent.monkey.patch_socket()

import requests
import json

base_url = 'https://api.getclever.com'
section_url = base_url + '/v1.1/sections'

#get all sections
sections = requests.get(section_url, auth=('DEMO_KEY', '')).json()
urls = [base_url+data['uri']+'/students' for data in sections['data']]

#get students for each section
threads = [gevent.spawn(requests.get, url, auth=('DEMO_KEY', '')) for url in urls]
gevent.joinall(threads)
students = [thread.value for thread in threads]

#get number of students in each section
num_students = [len(student.json()['data']) for student in students]
print (sum(num_students)/len(num_students))

导致此错误:

Traceback (most recent call last):
  File "clever.py", line 12, in <module>
    sections = requests.get(section_url, auth=('DEMO_KEY', '')).json()
  File "/Library/Python/2.7/site-packages/requests/api.py", line 55, in get
    return request('get', url, **kwargs)
  File "/Library/Python/2.7/site-packages/requests/api.py", line 44, in request
    return session.request(method=method, url=url, **kwargs)
  File "/Library/Python/2.7/site-packages/requests/sessions.py", line 382, in request
    resp = self.send(prep, **send_kwargs)
  File "/Library/Python/2.7/site-packages/requests/sessions.py", line 485, in send
    r = adapter.send(request, **kwargs)
  File "/Library/Python/2.7/site-packages/requests/adapters.py", line 379, in send
    raise SSLError(e)
requests.exceptions.SSLError: [Errno 2] _ssl.c:503: The operation did not complete (read)

我在这里做错了什么?

传单

这是一个类似的问题:[Errno 2] _ssl.c:504:操作未完成(读取)

当您注释掉

gevent.monkey.patch_socket()

或使用

gevent.monkey.patch_all()

或使用

gevent.monkey.patch_socket()
gevent.monkey.patch_ssl()

然后问题消失了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python:requests模块在Gevent中引发异常

来自分类Dev

Python:模拟引发异常的模块

来自分类Dev

Python Requests库在日志记录中引发异常

来自分类Dev

在Python中引发异常

来自分类Dev

捕获导入模块中引发的异常

来自分类Dev

在模块中引发异常时,自定义Python模块无法重新执行

来自分类Dev

处理并重新引发python日志记录模块引发的异常

来自分类Dev

最后,在python中引发异常

来自分类Dev

在python线程中引发异常

来自分类Dev

如何在CPython模块的init方法中引发异常

来自分类Dev

如何在CPython模块的init方法中引发异常

来自分类Dev

如何在Python 3.3中引发异常

来自分类Dev

在Python中引发未处理的C异常

来自分类Dev

打印Python异常类型(在Fabric中引发)

来自分类Dev

从Python中的线程引发多个异常

来自分类Dev

如何在Python 3.3中引发异常

来自分类Dev

更新查询在python中引发异常

来自分类Dev

引发异常波python

来自分类Dev

在PostgreSQL中引发异常

来自分类Dev

在shell脚本中捕获python脚本引发的异常

来自分类Dev

如何处理不同Python版本中引发的不同异常

来自分类Dev

正则表达式在python中引发异常

来自分类Dev

在python中引发异常时重新运行逻辑

来自分类Dev

Python Zeep Client请求在xml异常中引发错误

来自分类Dev

仅在Python Selenium中的for循环结束时引发异常

来自分类Dev

如何在Python中的线程循环中引发异常?

来自分类Dev

为什么Python无法捕获C ++中引发的异常?

来自分类Dev

如何在Python中捕获`with open(filename)`引发的异常?

来自分类Dev

O_NONBLOCK不会在Python中引发异常