VSCode中Python输出无颜色是因终端不解析ANSI码,需程序主动发送或扩展补足;推荐用colorama库自动适配跨平台,Windows须init(),Linux/macOS建议保留;重定向到文件时颜色自动关闭属正常行为。

VSCode 里 Python 的 print() 输出默认是单色的,不是代码没配好,而是终端本身不解析颜色——得靠程序主动发 ANSI 转义码,或者用扩展补足。
Python 脚本里怎么让 print 带颜色
直接写 ANSI 码太麻烦,推荐用 colorama,它能自动适配 Windows(旧版 cmd 不支持 ANSI),且不用改太多代码。
- 先装库:
pip install colorama - 脚本开头加
from colorama import init; init()(Windows 必须,Linux/macOS 可省略但建议保留) - 用法示例:
print(Fore.RED + "错误" + Style.RESET_ALL),Fore、Back、Style都在colorama里 - 注意:如果输出被重定向(比如
python script.py > out.txt),颜色会自动关闭,这是预期行为
终端本身不显示颜色?先检查这三处
即使代码写了颜色,VSCode 终端也可能不渲染——常见于新装系统或远程环境。
- 确认终端 profile 启用了 shell integration:设置里搜
terminal.integrated.shellIntegration.enabled,必须为true - PowerShell 用户额外执行:
$PSStyle.OutputRendering = 'Ansi'(加到$PROFILE永久生效) - WSL 或 SSH 远程开发时,
colorama必须装在远程环境里,本地装了没用 - 如果终端只显示乱码(如
^[[31m错误^[[0m),说明 shell 没启用 ANSI,换用bash或zsh再试
不想改代码?用 Output Colorizer 扩展高亮关键词
适合日志分析、测试输出等场景:不改一行 Python,也能让 "ERROR"、"FAIL" 自动变红。
立即学习“Python免费学习笔记(深入)”;
- 安装 IBM 出的
Output Colorizer扩展(别选名字类似但作者不明的) - 启用终端着色:
Output Colorizer: Enable Terminal设为true - 自定义规则写进
settings.json,例如:{"outputColorizer.rules": [{"pattern": "ERROR|error", "color": "red", "fontWeight": "bold"}]} - 注意:它只匹配 stdout/stderr 文本,不处理 ANSI 码;和
colorama可共存,但逻辑不同——前者是“文本关键词染色”,后者是“程序主动发色”
真正卡顿的点往往不在颜色本身,而在反复重载终端或扩展冲突。如果开终端就慢,先禁用 Output Colorizer 和所有带 “highlight” “rainbow” 字样的扩展,再逐个开回来验证。


















