代码之家  ›  专栏  ›  技术社区  ›  RedPanda

导入TQM将禁用使用termcolor的文本格式

  •  0
  • RedPanda  · 技术社区  · 8 年前

    我认为我的问题与 this issue

    我正在使用termcolor格式化终端文本。 termcolor 基本上,只需将字符串包装在ANSI代码中,然后由终端进行解释。片段

    from termcolor import cprint
    
    cprint('Hello, World!', 'green', attrs=['bold'])
    

    green text

    工作正常,但导入TQM会产生白色文本:

    from tqdm import tqdm
    from termcolor import cprint
    cprint('Hello, World!', 'green', attrs=['bold'])
    

    white text

    ANSI代码仍然存在,但终端不再解析它们。

    tqdm

    在Windows 10上使用python 3.5、tqdm 4.15、PyCharm 2017.2.3

    1 回复  |  直到 8 年前
        1
  •  1
  •   RedPanda    8 年前

    问题不在于 tqdm colorama 内部使用。在Windows/PhCharm上,存在一些已知的问题 colorama.init() 方法(参见 https://youtrack.jetbrains.com/issue/PY-16927 https://github.com/tartley/colorama/issues/79 )

    幸运的是,只要你使用 .init(strip=False) 科罗拉多州 人们提供了一个方便 .deinit() 方法来反转任何 导入时使用。以下工作:

    from tqdm import tqdm
    import colorama
    from termcolor import cprint
    
    colorama.deinit()
    colorama.init(strip=False)
    cprint('Hello, World!', 'green', attrs=['bold'])