You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Termcolor与PowerShell结合使用时无颜色输出问题咨询

解决PowerShell中termcolor无法显示颜色的问题

我之前在PowerShell里用termcolor时也踩过这个坑!主要原因是PowerShell对ANSI颜色转义码的支持需要手动开启,再加上你代码里还有个小坑,一起给你解决掉:

1. 开启PowerShell的ANSI转义码支持

termcolor是靠输出ANSI转义序列来实现颜色的,但旧版PowerShell默认不识别这些代码。按你的PowerShell版本来操作:

  • PowerShell 5.1及以下:
    先执行这个注册表修改命令,然后重启PowerShell:
    Set-ItemProperty HKCU:\Console VirtualTerminalLevel -Type DWORD 1
    
  • PowerShell 7+:
    默认已经支持,但如果还是没颜色,建议换成Windows Terminal(微软官方的新终端),它对ANSI支持更完善。也可以先检查一下:
    $Host.UI.RawUI.SupportsVirtualTerminal
    
    返回True才说明支持虚拟终端。

2. 修复代码里的变量名冲突

看你的代码,你把colored函数的返回值赋值给了同名变量colored,这会覆盖原来的函数,虽然不一定直接导致颜色不显示,但会让后续代码出问题。修改一下变量名:

import pyfiglet
from termcolor import colored

msg = input('what do you want to print : ')
color = input('what color: ')
asc = pyfiglet.figlet_format(msg)
# 把变量名改成colored_asc,避免覆盖函数
colored_asc = colored(asc, color=color)
print(colored_asc)

3. 先测试基础颜色输出

如果上面两步做完还是没颜色,先跑一段极简代码排查问题:

from termcolor import colored
print(colored("测试颜色", "red"))

如果这段代码能显示红色,那说明是pyfiglet的输出可能有特殊字符干扰,你可以试试用pyfiglet.figlet_format(msg, font="standard")指定基础字体再测试;如果还是没颜色,那大概率是终端的ANSI支持没开到位。

内容的提问来源于stack exchange,提问作者user3183762

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:23:38