日記

日本語の勉強のためのブログ

【仕様?】VSCodeのデバッグコンソールでtqdmの表示が崩れる

1. 問題

VSCodePythonプログラムのデバッグを行う際,「デバッグ コンソール」(「ターミナル」や「出力」とは別物)において,tqdmによるプログレスバーの表示が崩れてしまう.図1にその様子を示す.

図1. プログレスバーの表示崩れ

2. 解決?

デバッグコンソール側が\rをサポートしていない可能性が浮上*1したため調べたところ,「出力」パネルについては\rがサポートされていないとわかった.「デバッグ コンソール」についてもこれと同じ理由で表示が崩れてしまうのだと思う.

Tyriar commented on Oct 7, 2021
The output panel is not a real terminal and only supports appending, not rewriting of lines.
(引用元: tqdm creates new lines in output console · Issue #120529 · microsoft/vscode · GitHub)

ちなみに「ターミナル」では表示崩れは起きなかった.参考にipythonでの実行結果を載せる(動画でないと伝わらないと思うが).

In [5]: for i in tqdm(range(10000000)):
   ...:     pass
   ...:
100%|███████████████████████████| 10000000/10000000 [00:01<00:00, 5111618.74it/s]