You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Eventlet能否在OS X运行?遇epolls相关AttributeError报错求助

解决Eventlet在OS X上的AttributeError: module 'eventlet.hubs' has no attribute 'epolls'问题

别急,这个问题本质上是OS X和Linux的I/O多路复用机制差异导致的——epoll是Linux专属的特性,OS X根本不支持它,而Eventlet默认会优先尝试加载epoll对应的hub模块,自然就会抛出这个属性错误。

给你几个靠谱的解决办法:

  • 手动指定kqueue Hub(推荐)
    OS X原生支持kqueue,这是Eventlet对OS X的适配方案。在你的代码最开头(导入eventlet之后立刻加)插入这段代码,强制Eventlet使用kqueue:

    import eventlet
    eventlet.hubs.use_hub('kqueue')
    

    这样就能绕过自动检测时的错误,直接用OS X兼容的hub。

  • 重新安装Eventlet确保完整性
    有时候不完整的安装会缺失kqueue相关的模块文件,导致Eventlet没法自动切换到kqueue。可以先卸载再重装:

    pip uninstall eventlet -y
    pip install eventlet
    
  • Fallback到select Hub
    如果kqueue也出现问题(比如你的OS X版本较旧),可以试试用兼容性更强的select作为备选:

    import eventlet
    eventlet.hubs.use_hub('select')
    

简单解释下背后的逻辑:Eventlet的get_default_hub()会按epoll -> kqueue -> select的顺序自动选hub,但你的环境里可能因为某些原因跳过了kqueue的检测,直接去加载epolls模块,才触发了这个报错。手动指定hub就能绕过这个坑。

内容的提问来源于stack exchange,提问作者User

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:19:31