无法启动 celeryd - 错误:冲突的选项字符串:--no-color

Posted

技术标签:

【中文标题】无法启动 celeryd - 错误:冲突的选项字符串:--no-color【英文标题】:Failure to start celeryd - Error : conflicting option string(s): --no-color 【发布时间】:2014-07-17 14:35:28 【问题描述】:

我正在使用 django v1.7.0b4 和 celery v3.1.1。按照django installation guide 执行的步骤。但是我遇到了以下错误。

$ ./manage.py celeryd --help
Starting server in DEVELOPMENT Mode
Traceback (most recent call last):
  File "./manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 427, in     execute_from_command_line
utility.execute()
  File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 419, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Library/Python/2.7/site-packages/django_celery-3.1.10-py2.7.egg/djcelery/management/base.py", line 77, in run_from_argv
return super(CeleryCommand, self).run_from_argv(argv)
  File "/Library/Python/2.7/site-packages/django/core/management/base.py", line 284, in run_from_argv
parser = self.create_parser(argv[0], argv[1])
  File "/Library/Python/2.7/site-packages/django/core/management/base.py", line 265, in create_parser
option_list=self.option_list)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/optparse.py", line 1214, in __init__
add_help=add_help_option)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/optparse.py", line 1256, in _populate_option_list
self.add_options(option_list)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/optparse.py", line 1039, in add_options
self.add_option(option)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/optparse.py", line 1020, in add_option
self._check_conflict(option)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/optparse.py", line 995, in _check_conflict
option)
optparse.OptionConflictError: option -C/--no-color: conflicting option string(s): --no-color

还有其他人面临同样的问题吗?

已编辑:

在 django v1.6.5 中运行良好。

【问题讨论】:

【参考方案1】:

您应该使用./manage.py celery worker 而不是./manage.py celeryd

看起来你使用的时候有个bug:

django==1.7b4
celery==3.1.11
django-celery==3.1.10

一些可以帮助您避免此问题的提示:

当您开始玩项目时,请远离 beta 版本,使用稳定版本。 不要使用已弃用的方法:./manage.py celeryd./manage celery worker 的旧别名已弃用

【讨论】:

是的,我不应该干预测试版。 “celery worker”也崩溃了,所以我选择了“celeryd”,更改了文件“celery/bin/base.py”。现在使用 django v1.6.5 一切正常。谢谢。 如果您使用的是 celerycam,请不要忘记 → "celery events -c djcelery.snapshot.Camera"【参考方案2】:

django-celery 中的不兼容问题已在两个月前修复:https://github.com/celery/django-celery/pull/320。如果您使用的是 virtualenv,那么您可以像这样进行猴子补丁:

sed "s/\(= \['--app', '--loader', '--config'\)\]/\1, '--no-color']/"  -i \
    "$VIRTUAL_ENV/lib/python3.4/site-packages/djcelery/management/base.py"

用 Celery 3.1.13 和 django-celery 3.1.10 测试。

【讨论】:

以上是关于无法启动 celeryd - 错误:冲突的选项字符串:--no-color的主要内容,如果未能解决你的问题,请参考以下文章

Celeryd - 发送有关日志级别错误及以上的电子邮件

为django项目配置celery的后台启动

通过 pdb 调试 djcelery 的 celeryd

错误 VSP1737:由于共享冲突而无法打开文件

esxi无法引导启动

hdp直播 时间设置