pdb в JupyterLab не входит в интерактивный режим - PullRequest
1 голос
/ 20 сентября 2019

Моя цель - запустить некоторые скрипты Python с pdb или ipdb в JupyterLab для захвата моей истории отладки.

Я впервые вставил set_trace() в свой скрипт Python:

import torch
from IPython.core.debugger import set_trace

def train_batch(model_instance, inputs_source, labels_source, inputs_target, optimizer, args):
    inputs = torch.cat((inputs_source, inputs_target), dim=0)
    total_loss, train_stats = model_instance.get_loss(inputs, labels_source)
    total_loss[args.train_loss].backward()

    set_trace() # insert breakpoint

    optimizer.step()
    return train_stats

Затем я запускаю этот скрипт в моем JupyterLab:

!python ./trainer/train.py \
    --base_config ./config/sgd_vannila_0.001.yml \
    --dataset Office-Home \
    --class_num 50 \
    --src_address ./data/office-home/Art.txt \
    --tgt_address ./data/office-home/Clipart.txt \
    --name transfer.debug.rand_noise \
    --train_steps 10000 \
    --seed 2 \
    --filter_classes=0,50 \
    --eval_interval 50

Выполнение останавливается на точке останова, но не предоставляет интерактивного поля для запроса каких-либо инструкций ipdb.То же самое происходит с pdb или ноутбуком Jupyter.

enter image description here


Что я пробовал:

  • Перезапуск браузера Chrome или моего ноутбука не помогает
  • . Добавление точки останова внутри блока кода ноутбука работает (см. скриншот ниже), но я хотел бы иметь возможность отлаживать код, написанный в файле моего модуля python enter image description here

Информация о версии:

  • ipdb-0.12.2
  • Python 3.6.9
  • JupyterLab 0.35.5
...