强制 Celery 使用 Python 3

Forcing Celery to use Python 3

如果这是一个愚蠢的问题,我很抱歉,但这是我第一天使用 Celery,我很难使用它 python3。我已将此 shebang 包含在我的所有文件中...

#!/usr/bin/env python3

堆栈跟踪报告 python2.7...

引发的错误
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/celery/app/trace.py", line 367, in trace_task
    R = retval = fun(*args, **kwargs)

该应用 运行 使用此命令...

celery -A GidConsumer worker --loglevel=info

通常在 Python 项目中,您会将所有依赖项(包括 celery)安装到 virtualenv 中。然后,当您想要 运行 celery 时,您将激活您的虚拟环境,它会在您的 PATH 中找到 celery 可执行文件。这里没有包括很多细节,但总的来说,尝试全局安装东西是个坏主意,它会导致很多麻烦。

在这种情况下,另一种方法是找到您在 Python3 下全局安装的 celery 包(您是否使用 pip3 来安装它?)。弄清楚 celery 落在哪个 bin 中,你可以通过在 bin.

中包含它的完整路径来使用它的完整路径来调用它

请使用 pip 卸载 celery(pip uninstall celery)并使用 PIP 3 重新安装 celery(pip3 install celery).... :)