如何在Julia的JuMP中完全屏蔽Gurobi的输出信息?
解决JuMP调用Gurobi时重复输出许可证信息的问题
你遇到的这两行输出是Gurobi初始化阶段的许可证相关提示,set_silent(model)和OutputFlag=0只能屏蔽求解过程的日志,管不了初始化输出。以下是几种可行的解决方法:
方案1:全局屏蔽Gurobi初始化输出
在加载Gurobi包或创建任何Gurobi模型之前,设置环境变量GRB_SUPPRESS_OUTPUT为1,这会让Gurobi完全屏蔽所有初始化阶段的输出:
ENV["GRB_SUPPRESS_OUTPUT"] = 1 using Gurobi, JuMP # 后续正常创建模型、求解 model = Model(Gurobi.Optimizer) set_silent(model) # ... 你的建模和求解代码
方案2:针对单个模型抑制输出
如果不想全局设置,可以在创建Gurobi优化器时,通过suppress_output参数直接抑制初始化输出:
using Gurobi, JuMP model = Model(() -> Gurobi.Optimizer(suppress_output=true)) set_silent(model) # ... 你的建模和求解代码
方案3:重定向错误输出
如果前两种方法无效,可将Gurobi的错误输出重定向到空设备,彻底屏蔽这类提示:
using Gurobi, JuMP model = Model(Gurobi.Optimizer) set_silent(model) # ... 完成建模后,包裹求解代码 redirect_stderr(devnull) do optimize!(model) end
注意:这个方法会重定向所有标准错误输出,若需要捕获其他错误信息,需谨慎使用。
内容的提问来源于stack exchange,提问作者user3158588
相关产品推荐
相关产品推荐

