eventlet on OS X?



我不确定Eventlet是否适用于OS X,因为epolls不支持OS X。

Traceback (most recent call last):
File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/threading.py", line 917, in _bootstrap_inn
er
self.run()
File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "scraper.py", line 44, in thread_worker
with eventlet.Timeout(60, False):
File "/usr/local/lib/python3.7/site-packages/eventlet/timeout.py", line 55, in __init__
self.start()
File "/usr/local/lib/python3.7/site-packages/eventlet/timeout.py", line 66, in start
self.timer = get_hub().schedule_call_global(
File "/usr/local/lib/python3.7/site-packages/eventlet/hubs/__init__.py", line 117, in get_hub
use_hub()
File "/usr/local/lib/python3.7/site-packages/eventlet/hubs/__init__.py", line 71, in use_hub
mod = get_default_hub()
File "/usr/local/lib/python3.7/site-packages/eventlet/hubs/__init__.py", line 40, in get_default_hub
return eventlet.hubs.epolls
AttributeError: module 'eventlet.hubs' has no attribute 'epolls'

Eventlet 不是特定于平台的,但它的中心可以是。epolls中心仅适用于 Linux,它是 Eventlet 的默认集线器,但您可以更改它。查看 Eventlet 的中心文档,根据您的情况选择合适的文档,并在执行任何 IO 之前致电eventlet.hubs.use_hub

例如,使用独立于平台的selects中心:

import eventlet
eventlet.hubs.use_hub("selects")

最新更新