Celery:多个import as 会导致失败

3

我正在使用celery作为任务运行程序。在Python 2.7下一直运行良好。最近我将电脑升级到Ubuntu 16.04,但它开始给我以下错误:

from uuid import UUID, uuid4 as _uuid4, _uuid_generate_random
ImportError: cannot import name _uuid_generate_random

完整的调用堆栈:

Traceback (most recent call last):
  File "venv/bin/celery", line 7, in <module>
    from celery.__main__ import main
  File "venv/local/lib/python2.7/site-packages/celery/__init__.py", line 133, in <module>
    from celery import five  # noqa
  File "venv/local/lib/python2.7/site-packages/celery/five.py", line 153, in <module>
    from kombu.utils.compat import OrderedDict  # noqa
  File "venv/local/lib/python2.7/site-packages/kombu/utils/__init__.py", line 19, in <module>
    from uuid import UUID, uuid4 as _uuid4, _uuid_generate_random
ImportError: cannot import name _uuid_generate_random

这对我来说似乎很奇怪。目前我的Python版本是:

Python 2.7.10

在2.7.x版本中是否有一些语法改变?

3
看起来你正在导入一个“私有”的成员变量(_uuid_generate_random)。你可能不应该这样做,因为它们在版本之间可能会在没有任何通知的情况下发生更改... - mgilson
1
这不是一个语法错误,而是一个导入错误。所以很可能是尝试从库中导入时出了问题,而不是语法有误。 - SethMMorton
啊,我感到很傻。 - lang2
2个回答

1

这是在旧版的kombu中的一个bug。只需升级,错误就会消失。

pip install -U kombu

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接