运行python脚本或使用python构建的程序时,将以深红色发出错误。随着年龄的增长,对我来说,阅读起来变得越来越困难,以至于我不得不斜视,放大或大惊小怪的控制台属性和重新运行命令。
我真的不想更改控制台的默认设置,因为其他程序通常不会出现此问题,而且似乎是Python,它不支持主机控制台的颜色设置。我也提前不知道可能使用python构建了哪些程序(例如,Azure CLI)来提前设置颜色。
是否可以将python想要用于错误的DarkRed更改为更容易区分的颜色,例如“常规” Red?对于我的计算机上运行的任何py脚本或程序?
答案 0 :(得分:2)
首先,python
是无辜的。罪魁祸首是azure-cli
本身。它使用名为knack
的库来配置logging
。 knack
使用colorama
来配置彩色输出。
但是问题是RED
中的colorama
是\033[31m
。您会看到什么,有点像暗红色。
因此解决方案很简单,我们手动修改该knack
软件包。
假设您的azure-cli
安装在C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2
。
C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\Lib\site-packages
,删除该knack
目录或重命名。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)
...
答案 1 :(得分:0)
特别是对于pip,有一个“ --no-color”命令行选项: https://pip.pypa.io/en/stable/reference/pip/#general-options