admin管理员组

文章数量:1794759

报错”from kombu.async.timer import Entry, Timer as Schedule, to

报错”from kombu.async.timer import Entry, Timer as Schedule, to

问题描述:

python:3.8 celery --version:5.0.2 (singularity) kombu: 5.0.2 在终端运行:celery -A celery_tasks.main worker -l info报错,发现提示from kombu.async.timer import Entry, Timer as Schedule, to_timestamp, logger无效

原因分析:

1.这是因为在 python 3.7 中将 async 作为了关键字,所以当 py 文件中出现类似 from . import async, base 这类不符合python语法的语句时,Python会报错; 解决方法: 在 celery 官方的提议下,建议将 kombu下的async.py 文件的文件名改成 asynchronous;然后把引用和这个文件的所有文件的里面的async改为asynchronous; 2. 但是再修改后会报错:No module named ‘kombu.asynchronous’,搜索到的方法是回退版本,然后再次升级到最新版本,不再出现报错(有些人进回退版本就好): pip uninstall celery && pip install celery==3.1.25; pip install celery;不过对我都没用,因为发现回退版本后会重置async的修改,进行第一步的报错 3. 之后我从kombu下手,删除原有的kombu,并安装最新的版本后,问题解决: pip uninstall kombu && pip install kombu

本文标签: 报错asynckombuTimerschedule