如何静音 Prophet 的输出?

问题描述 投票:0回答:3

我正在使用 Prophet(Facebook 的时间序列库),它会产生大量输出。像这样的东西: Prophet output

我已经对这样的输出保持沉默:

@contextmanager
def suppress_stdout():
    with open(os.devnull, "w") as devnull:
        old_stdout = sys.stdout
        sys.stdout = devnull
        try:  
            yield
        finally:
            sys.stdout = old_stdout

但是它并没有静默所有类型的输出,我如何静默所有类型?

python output facebook-prophet
3个回答
3
投票

这里的问题是 Prophet 的几个记录器,你可以用它们来静音:

import logging
logging.getLogger("prophet").setLevel(logging.ERROR)
logging.getLogger("cmdstanpy").setLevel(logging.ERROR)

1
投票

我怀疑您正在使用类似 IPython 的环境,例如Jupyter 笔记本。然后您可以在单元格中使用

%%capture
神奇命令

例如,

%%capture
output = do_some_verbose_things(args)

默认情况下,它还会捕获

stderr
,我认为您看到的输出就在那里。


0
投票

我需要完全禁用

cmdstanpy
的日志记录。

import logging
logging.getLogger("prophet").setLevel(logging.ERROR)
logging.getLogger("cmdstanpy").disabled=True
© www.soinside.com 2019 - 2024. All rights reserved.