无法启动 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的主要内容,如果未能解决你的问题,请参考以下文章