Можно ли изменить цвет ошибки по умолчанию в python? - PullRequest
0 голосов
/ 11 февраля 2019

При запуске скриптов Python или программ, созданных с использованием Python, ошибки выдаются темно-красным цветом.Когда я становлюсь старше, мне становится все труднее читать, до такой степени, что мне приходится щуриться, увеличивать или суетиться со свойствами консоли и повторно запускать команды.

Я действительно не хочу менять настройки консоли по умолчанию, потому что другие программы, как правило, не имеют этой проблемы, и это просто Python, который не соблюдает настройки цвета консоли хоста.Я также не знаю заранее, какие программы могли быть созданы с помощью Python (например, Azure CLI) для предварительной установки цветов.

Есть ли способ изменить DarkRed, который python хочет использовать для ошибок, на цвет, который легче различить, например, на «обычный» красный?Для любого сценария py или программы, которая работает на моем компьютере?

enter image description here

РЕДАКТИРОВАТЬ: Вот пример вызова программы, написанной с использованием Python и темно-красного,Моя библиотека скриптов py находится на моем рабочем компьютере.enter image description here

РЕДАКТИРОВАТЬ 2: Его пункт, который был другим, который использует темно-красный.enter image description here

Ответы [ 2 ]

0 голосов
/ 26 мая 2019

В частности, для пункта есть опция командной строки "--no-color": https://pip.pypa.io/en/stable/reference/pip/#general-options

0 голосов
/ 11 февраля 2019

Во-первых, python невиновен.Виновником является azure-cli сама.Для настройки logging используется библиотека с именем knackknack использует colorama для настройки цветного вывода.

Но проблема в том, что RED в colorama равно \033[31m.Вот что вы видите, что-то вроде тусклого красного.

Итак, решение простое, мы вручную модифицируем этот пакет knack.

Предположим, что ваш azure-cli установлен на C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2.

  1. Затем перейдите на C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\Lib\site-packages, удалите этот каталог knack или переименуйте его.
  2. Перейдите на https://github.com/Microsoft/knack, и загрузите пакет.добавьте одну строку в строку 47:
class _CustomStreamHandler(logging.StreamHandler):
    COLOR_MAP = None

    @classmethod
    def get_color_wrapper(cls, level):
        if not cls.COLOR_MAP:
            import colorama

            def _color_wrapper(color_marker):
                def wrap_msg_with_color(msg):
                    return '{}{}{}'.format(color_marker, msg, colorama.Style.RESET_ALL)
                return wrap_msg_with_color

            colorama.Fore.RED = "\033[31;1m"  # <- add this line
            cls.COLOR_MAP = {
                logging.CRITICAL: _color_wrapper(colorama.Fore.RED),
                logging.ERROR: _color_wrapper(colorama.Fore.RED),
                logging.WARNING: _color_wrapper(colorama.Fore.YELLOW),
                logging.INFO: _color_wrapper(colorama.Fore.GREEN),
                logging.DEBUG: _color_wrapper(colorama.Fore.CYAN)
            }

        return cls.COLOR_MAP.get(level, None)
    ...
Скопируйте измененный пакет в соответствующее местоположение. Проверьте его еще раз. Bingbangba!
...