hack のためのネタ帳, etc,,,

×
jupyter notebook で progress bar を用いる場合 JavaScript widgets 版の tqdm を使うと表示の自由度が高まる

準備

以下のようにして tqdm を導入した上で、jupyter notebook 用の JavaScript Widgets を有効化しておく
pip3 install tqdm
jupyter nbextension enable --py --sys-prefix widgetsnbextension 

使い方

以下のように tqdm を入れ子にしたり stdout, stderr への出力があると、素の tqdm では表示が破綻するけど、widgets 版を使っておくと入れ子になっても大丈夫
#from tqdm import tqdm                  # 素の tqdm は  stderr に出力されるので stdout や stderr に出力があると表示が破綻する
#from tqdm import tqdm_notebook as tqdm # tqdm=5.0.0 以降は削除予定
from tqdm.notebook import tqdm         # tqdm=5.0.0 以降はこちらを使う
import time

for i in tqdm(range(2)):
    for j in tqdm(range(4)):
        time.sleep(0.2)
        print([i,j])

vscode with Remote-WSL

素の tqdm は
0%|          | 0/2 [00:00
だけ表示されて、以降の表示が出ない。

tqdm.tqdm_notebook は
Mime type unknown is not currently supported.
Mime type unknown is not currently supported.
[0, 0]
[0, 1]
[0, 2]
[0, 3]
Mime type unknown is not currently supported.
[1, 0]
[1, 1]
[1, 2]
[1, 3]
のような感じで widgetsnbextension が上手く表示出来ない模様。
地味に痛い。

関連

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

管理人/副管理人のみ編集できます