首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >芹菜‘s app.conf.humanize(with_defaults=False)的默认设置是什么?

芹菜‘s app.conf.humanize(with_defaults=False)的默认设置是什么?
EN

Stack Overflow用户
提问于 2016-12-05 14:44:30
回答 1查看 524关注 0票数 1

我正在尝试使用app.conf.humanize(with_defaults=False)打印芹菜的配置,遵循用户指南中的示例。但是我在使用with_defaults=False时总是得到一个空字符串,我知道配置更改是有效的,因为我可以看到使用.humanize(with_defaults=True)进行的更改。

我猜想使用app.conf.config_from_object('myconfig')添加配置将以“默认”的形式加载配置设置,因此是否有一种方法可以以一种非默认的方式加载模块的配置?

这是我的源代码:

代码语言:javascript
复制
#myconfig.py
worker_redirect_stdouts_level='INFO'
imports = ('tasks',)

代码语言:javascript
复制
#tasks.py
from celery import Celery

app = Celery()
app.config_from_object('myconfig')    
print "config: %s" % app.conf.humanize(with_defaults=False)

@app.task
def debug(*args, **kwargs):
    print "debug task args  : %r" % (args,)
    print "debug task kwargs: %r" % (kwargs,)

我使用env PYTHONPATH=. celery worker --loglevel=INFO开始使用芹菜,它打印config: (如果我更改为with_defaults=True,就会得到预期的完整输出)。

EN

回答 1

Stack Overflow用户

发布于 2016-12-08 12:21:52

加载config_from_object()config_from_envvar()的配置不被视为默认配置。

观察到的行为是由于此承诺为了响应我的错误报告而修复了一个bug,所以未来版本的芹菜将如预期的那样工作。

代码语言:javascript
复制
from celery import Celery
app = Celery
app.config_from_object('myconfig')
app.conf.humanize()  # returns only settings directly set by 'myconfig' omitting  defaults

其中myconfigPYTHONPATH中的python模块:

代码语言:javascript
复制
#myconfig.py
worker_redirect_stdouts_level='DEBUG' 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40976870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档