今天在一台Windows Server2012R2中部署Django项目遇到一个问题:任务队列启动失败。
异常如下图:
D:\PythonProject\Allot>celery -A Allot worker -l info
Traceback (most recent call last):
File "d:\python3\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "d:\python3\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "D:\Python3\Scripts\celery.exe\__main__.py", line 9, in <module>
......
File "d:\python3\lib\site-packages\celery\utils\timer2.py", line 19
from kombu.async.timer import Entry, Timer as Schedule, to_timestamp, logger
^
SyntaxError: invalid syntax
我自己开发也是下windows下进行的,在我的开发机上一切正常,切换到服务器上就无法启动了。
我以为是python第三方库的版本不对,又把所有库删掉重新安装了一遍,还是报错。
最后终于在一片国外的帖子中找到了端倪
原来Celery最高只支持到Python3.6,不支持Python3.7,而我恰好服务器安装的python版本就是3.7的,真是自作孽啊!
最后把重装Python选择3.6的版本就好了。