我认为我的问题与this issue
平行我使用termcolor格式化终端文本。 termcolor
基本上只是将您的字符串包装在终端然后解释的ANSI代码中。摘录
from termcolor import cprint
cprint('Hello, World!', 'green', attrs=['bold'])
工作正常,但导入tqdm会产生白色文字:
from tqdm import tqdm
from termcolor import cprint
cprint('Hello, World!', 'green', attrs=['bold'])
ANSI代码仍然存在,但终端不再解析它们。
遗憾的是,{p>tqdm
根深蒂固在我的包裹中,所以我无法摆脱导入。什么是更改行为的终端包,以及如何在需要时禁用它?
在Windows 10上使用python 3.5,tqdm 4.15,PyCharm 2017.2.3
答案 0 :(得分:1)
问题不在于tqdm
,而在内部使用了colorama
。在Windows / PhCharm上,colorama.init()
方法存在已知问题(请参阅https://youtrack.jetbrains.com/issue/PY-16927,https://github.com/tartley/colorama/issues/79)
幸运的是,只要你使用.init(strip=False)
一切正常,colorama
人就提供了一种方便的.deinit()
方法来反转导入时tqdm
使用的任何内容。以下作品:
from tqdm import tqdm
import colorama
from termcolor import cprint
colorama.deinit()
colorama.init(strip=False)
cprint('Hello, World!', 'green', attrs=['bold'])