如何也使表达式的pyomo错误消息静音

时间:2020-11-11 17:55:44

标签: pyomo

检索pyomo对象的值时,可以使用标志来处理异常。 对于未初始化的变量,这可以按预期工作,并且不返回任何值。 但是,对于表达式pyomo仍然会在屏幕上显示一条错误消息。 考虑以下最小示例:

import pyomo.environ as pyo

m = pyo.ConcreteModel()

m.var_1 = pyo.Var(initialize=0)
m.var_2 = pyo.Var()

print('var_1:', pyo.value(m.var_1, exception=False))
print('var_2:', pyo.value(m.var_2, exception=False))

expr_1 = m.var_1*42
expr_2 = m.var_2*42

print('expr_1:', pyo.value(expr_1, exception=False))
print('expr_1:', pyo.value(expr_2, exception=False))

这将是屏幕输出:

var_1: 0
var_2: None
expr_1: 0
ERROR: evaluating object as numeric value: var_2
        (object: <class 'pyomo.core.base.var.SimpleVar'>)
    No value for uninitialized NumericValue object var_2
expr_1: None

这种行为是否有意图,并且有一种简单的方法可以完全静音pyomo的表达式错误消息,而无需更改全局日志记录级别或遍历表达式树?

0 个答案:

没有答案
相关问题