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

Windows环境下Celery 4.4用eventlet启动报错AttributeError求助

问题排查与解决方案

这个问题我之前也碰到过,根源很明确——Python版本和eventlet版本不兼容,具体原因和解决办法如下:

问题原因

你当前使用的是Python 3.7,而错误日志里提到的os.register_at_fork()方法是Python 3.8及以上版本才新增的API。你的Pipfile里写的是eventlet = "*",这会自动安装eventlet的最新版本(比如0.30+),而这些新版本已经放弃了对Python 3.7的支持,内部用到了只有3.8+才有的os.register_at_fork(),所以启动Celery worker时就抛出了AttributeError。

解决办法

你可以二选一:

方案1:降级eventlet到兼容Python 3.7的版本

修改你的Pipfile,把eventlet的版本指定为0.29.0(这个版本是最后一批支持Python 3.7的eventlet版本):

[packages]
eventlet = "==0.29.0"
# 其他包保持不变

然后重新安装依赖:

pipenv install

之后再重新启动Celery worker,应该就能正常运行了。

方案2:升级Python版本到3.8及以上

如果条件允许,把你的Python版本升级到3.8或更高版本,这样os.register_at_fork()就会存在,最新版的eventlet也能正常工作。升级后不需要修改Pipfile,直接重新安装依赖即可。

验证测试

修改完后,重新运行你的Celery启动命令:

pipenv run celery worker -A src.celery_app -l info -P eventlet --without-mingle --without-heartbeat --without-gossip -Q queue1 -n worker1

应该不会再出现AttributeError的问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 07:08:15