Gurobi и gurobipy - удвоенная консоль вывода при использовании регистрации в Python - PullRequest
0 голосов
/ 04 марта 2019

При использовании пакета Gurobi Python (gurobipy v. 8.1.0) вместе со стандартным пакетом ведения журнала Python я получаю на консоли двойной вывод для Gurobi, например

Total elapsed time = 498.27s
[2019-03-04 17:51:58,804][INFO] Total elapsed time = 498.27s

Кто-нибудь знает, какубрать логи для гуробипы?Спасибо

1 Ответ

0 голосов
/ 14 июля 2019

У меня тоже была эта проблема.Не удалось найти «официальное» решение, поэтому я применил свой собственный взлом:

import sys

def solve():
    class DevNull:
        def write(self, *args, **kwargs):
            pass

        def flush(self, *args, **kwargs):
            pass

    sys.stdout = DevNull() 

    try:
        return _actually_solve()
    except Exception:
        # restore stdout so that handlers can print normally
        # https://docs.python.org/3/library/sys.html#sys.__stdout__ 
        sys.stdout = sys.__stdout__
        raise
    finally:
        sys.stdout = sys.__stdout__

Эта функция оборачивает фактическую логику решения в _actually_solve и заменяет стандартный вывод файловым объектом, который игнорирует всемы пишем там.

...