grequests.map中的URL过多导致仅在Mac上出现gevent.hub.LoopExit

3 投票
1 回答
818 浏览
提问于 2025-04-18 03:01

在我的代码中(https://github.com/chembl/chembl_webresource_client/blob/master/chembl_webresource_client/web_resource.py#L98

我在调用 grequests.map

ret = grequests.map(rs, size=50)

这里的 rs 是一个包含网址的列表。如果这个列表的大小超过某个值(在我的例子中是300),我就会遇到:

File "/Library/Python/2.7/site-packages/gevent/hub.py", line 331, in switch
      return greenlet.switch(self)
gevent.hub.LoopExit: This operation would block forever

无论 size 参数是什么(我尝试了10到50之间的不同值,也试过完全不使用这个参数)。

这个问题只在macOS上出现。在Ubuntu上,任何大小的网址列表都能正常工作。

我非常希望能得到帮助,因为这对我的小库来说是个大问题。

1 个回答

0

也许你遇到了这个问题:https://github.com/gevent/gevent/issues/423

这个问题会在1.0.1版本中修复。

你能试试主分支吗?

撰写回答