导入 tqdm 会禁用使用 termcolor 的文本格式
importing tqdm disables text formatting using termcolor
我认为我的问题与 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 代码仍然存在,但终端不再解析它们。
不幸的是,tqdm
在我的包中根深蒂固,所以我不能只是摆脱导入。程序包对改变行为的终端做了什么,我如何在需要时禁用它?
使用 python 3.5,tqdm 4.15,PyCharm 2017.2.3 Windows 10
问题不在于 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'])
我认为我的问题与 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 代码仍然存在,但终端不再解析它们。
不幸的是,tqdm
在我的包中根深蒂固,所以我不能只是摆脱导入。程序包对改变行为的终端做了什么,我如何在需要时禁用它?
使用 python 3.5,tqdm 4.15,PyCharm 2017.2.3 Windows 10
问题不在于 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'])