Sti*_*ack 5 pip colors colorama azure-cli
运行 python 脚本或使用 python 构建的程序时,错误以深红色发出。随着年龄的增长,这对我来说越来越难以阅读,以至于我不得不眯眼、放大或大惊小怪地处理控制台属性并重新运行命令。
我真的不想更改控制台默认值,因为其他程序通常没有这个问题,而且似乎是 Python 不支持主机控制台的颜色设置。我也不知道哪些程序可能是用 python 构建的(例如 Azure CLI)来提前设置颜色。
有没有办法将python想要用于错误的DarkRed更改为更容易区分的颜色,例如“常规”红色?对于在我的机器上运行的任何 py 脚本或程序?
第一,python是无辜的。罪魁祸首就是azure-cli它自己。knack它使用一个名为配置的库logging。并knack用于colorama配置彩色输出。
但问题是,REDincolorama是\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)
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1321 次 |
| 最近记录: |