解决模型时如何使 pyomo 静音(详细程度 0)
how to make pyomo silent (verbosity 0) when solving a model
我是 运行 批具有不同条件的 pyomo 求解器,我想让求解器静音。
opt = SolverFactory('glpk')
instance = model.create_instance(dat_file)
results = opt.solve(instance, tee=True, timelimit=300)
换句话说,当 运行 这最后一行时,我不想在标准输出上打印任何内容。可能吗?
我使用的解决方案是重定向标准输出:
from contextlib import redirect_stdout
opt = SolverFactory('glpk')
instance = model.create_instance(dat_file)
with open("log.txt", mode='w', encoding='utf-8') as fp:
with redirect_stdout(fp):
results = opt.solve(instance, tee=True, timelimit=300)
但是我想知道是否有 "cleaner" 解决方案?
我相信您可以在求解模型时简单地设置选项 tee=False
以抑制所有求解器输出。
选项 tee=False
仅禁用求解器日志,但不禁用 Pyomo 警告消息。要禁用所有功能,您可以使用以下代码:
import logging
logging.getLogger('pyomo.core').setLevel(logging.ERROR)
我是 运行 批具有不同条件的 pyomo 求解器,我想让求解器静音。
opt = SolverFactory('glpk')
instance = model.create_instance(dat_file)
results = opt.solve(instance, tee=True, timelimit=300)
换句话说,当 运行 这最后一行时,我不想在标准输出上打印任何内容。可能吗?
我使用的解决方案是重定向标准输出:
from contextlib import redirect_stdout
opt = SolverFactory('glpk')
instance = model.create_instance(dat_file)
with open("log.txt", mode='w', encoding='utf-8') as fp:
with redirect_stdout(fp):
results = opt.solve(instance, tee=True, timelimit=300)
但是我想知道是否有 "cleaner" 解决方案?
我相信您可以在求解模型时简单地设置选项 tee=False
以抑制所有求解器输出。
选项 tee=False
仅禁用求解器日志,但不禁用 Pyomo 警告消息。要禁用所有功能,您可以使用以下代码:
import logging
logging.getLogger('pyomo.core').setLevel(logging.ERROR)