colorama 在 windows 终端或某些 python 环境(如 3.12)中常因初始化不当导致 ansi 转义序列未被解析,仅显示原始控制码(如 `[31msome red text`)。本文提供可靠初始化方法、跨平台适配建议及常见误区排查。
Colorama 是一个轻量级的 Python 库,用于在 Windows、macOS 和 Linux 终端中统一支持 ANSI 颜色转义序列。但其行为高度依赖正确的初始化方式——尤其在较新版本 Python(如 3.12)或非标准终端(如 VS Code 集成终端、Git Bash、旧版 CMD)中,常见问题表现为:颜色不生效、输出乱码(如 \[31msome red text)、或仅显示原始 ANSI 控制字符串。
from colorama import init, Fore, Back, Style # 必须在所有 colorama 输出前调用,且推荐显式启用 convert init(convert=True, autoreset=True) # 或更健壮的写法(自动检测并适配) # init(autoreset=True) # colorama 0.4.6+ 默认已智能处理,但仍建议显式 convert=True(尤其 Windows)
from colorama import init, Fore, Back, Style # 推荐初始化(兼容性最强) init(convert=True, autoreset=True) print(Fore.RED + "这是红色文字") print(Fore.GREEN + "这是绿色文字") print(Back.YELLOW + Fore.BLACK + "黄底黑字") print(Style.BRIGHT + "加粗显示" + Style.RESET_ALL)
import sys
if sys.stdout.isatty(): # 仅在真实终端中初始化
from colorama import init
init(convert=True)pip install --upgrade colorama
print("\033[91m红色文字\033[0m") # 更轻量,但可读性低、跨平台容错弱Colorama “不工作”的本质通常是初始化缺失或参数不匹配。坚持以下三步即可解决绝大多数问题:
1️⃣ 升级到 colorama >= 0.4.6;
2️⃣ 在 print() 前唯一一次调用 init(convert=True, autoreset=Tr

如仍无效,可临时用 os.system('') 触发 Windows 10+ 终端的 ANSI 启用(仅限 Windows),或改用 rich 库获取更强大、更稳定的富文本支持。