celery: error: unrecognized arguments: worker -A test_tasks -l info -c 5
celery: error: unrecognized arguments: worker -A test_tasks -l info -c 5
我在使用 Celery 时遇到奇怪的错误,我 运行 以与 30 分钟前相同的方式对其进行设置。我一直在处理项目中的几个文件,但由于某种原因,我突然得到
[virtual_assistant] cchilders:~/projects/virtual_assistant
$ celery worker -A test_tasks -l info -c 5
usage: celery [-h] [--auth_host_name AUTH_HOST_NAME]
[--noauth_local_webserver]
[--auth_host_port [AUTH_HOST_PORT [AUTH_HOST_PORT ...]]]
[--logging_level {DEBUG,INFO,WARNING,ERROR,CRITICAL}]
celery: error: unrecognized arguments: worker -A test_tasks -l info -c 5
这与我用来 运行 几个芹菜文件的命令相同,基于 http://agiliq.com/blog/2015/07/getting-started-with-celery-and-redis/
代码在这里https://bitbucket.org/codyc54321/virtual_assistant
我看到其他关于这个问题的答案说 Celery 的 arg 解析被破坏了,我不知道该怎么办。
这可能是由您导入的使用 argparse 的库或其他文件引起的。如果您导入的文件包含以下内容:
import argparse
flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args()
然后 celery 的 arg 解析可能会被破坏并且无法正常工作。
某些东西(可能 argparse
)在 celery 处理其命令行参数(可能也与 argparse
)之前发生变异 sys.argv
。
为了解决这个问题,如果您可以精确地隔离 celery 应用程序初始化与有问题的外部模块交互的位置(可能与 import
一样无害的东西),您可以尝试做这样的事情:
_preserved_argv = list(sys.argv[1:])
del sys.argv[1:]
irksome_library_module.jerkface_code()
sys.argv.extend(_preserved_argv)
我的芹菜调用:
celery worker --app myapp.schedule
...现在按照我期望的方式工作。
我在使用 Celery 时遇到奇怪的错误,我 运行 以与 30 分钟前相同的方式对其进行设置。我一直在处理项目中的几个文件,但由于某种原因,我突然得到
[virtual_assistant] cchilders:~/projects/virtual_assistant
$ celery worker -A test_tasks -l info -c 5
usage: celery [-h] [--auth_host_name AUTH_HOST_NAME]
[--noauth_local_webserver]
[--auth_host_port [AUTH_HOST_PORT [AUTH_HOST_PORT ...]]]
[--logging_level {DEBUG,INFO,WARNING,ERROR,CRITICAL}]
celery: error: unrecognized arguments: worker -A test_tasks -l info -c 5
这与我用来 运行 几个芹菜文件的命令相同,基于 http://agiliq.com/blog/2015/07/getting-started-with-celery-and-redis/
代码在这里https://bitbucket.org/codyc54321/virtual_assistant
我看到其他关于这个问题的答案说 Celery 的 arg 解析被破坏了,我不知道该怎么办。
这可能是由您导入的使用 argparse 的库或其他文件引起的。如果您导入的文件包含以下内容:
import argparse
flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args()
然后 celery 的 arg 解析可能会被破坏并且无法正常工作。
某些东西(可能 argparse
)在 celery 处理其命令行参数(可能也与 argparse
)之前发生变异 sys.argv
。
为了解决这个问题,如果您可以精确地隔离 celery 应用程序初始化与有问题的外部模块交互的位置(可能与 import
一样无害的东西),您可以尝试做这样的事情:
_preserved_argv = list(sys.argv[1:])
del sys.argv[1:]
irksome_library_module.jerkface_code()
sys.argv.extend(_preserved_argv)
我的芹菜调用:
celery worker --app myapp.schedule
...现在按照我期望的方式工作。