#python #visual-studio-code #plotly #plotly-dash #jupyterdash
Вопрос:
Это будет пост с самостоятельным ответом, но это означает только то, что у меня есть идея решения, и что я очень хочу услышать о более эффективных и стабильных подходах к рассматриваемой проблеме.
Я хотел бы знать, как вы можете объединить возможности JupyterDash
и VSCode
для запуска процесса отладки .ipynb
файла, который включает в себя все следующие шаги:
- вхожу в код,
- запуск кода строка за строкой,
- проверка переменных,
- установка точек останова,
- проверка обратных вызовов и
- интерактивное редактирование переменных.
Я думаю, что перепробовал все мыслимые комбинации:
- Войдите в код с помощью
F10
Run > Start Debugging (F5)
из меню VSCodeRun and Debug (ctrl Shift D)
из меню записной книжки Jupyter- Проверка переменных с помощью
JUPYTER:VARIABLES
консоли отладки VSCode
И все же я не чувствую, что нашел рабочий процесс, который на 100% удовлетворяет, когда дело доходит до интерактивности и стабильности.
Информация о системе:
Python 3.9.6
VScode 1.60.2
Plotly 5.1.0
JupyterDash 0.4.0
Ответ №1:
Я буду основывать это предложение на представленном здесь коде для создания базового приложения dash с интерактивной фигурой и раскрывающимся списком, который запускает обратный вызов:
Часть 1 и 2 — Ввод кода и выполнение кода строка за строкой
По умолчанию для .ipynb
файла F10
a в VSCode будет активирован Step into function
и помещена желтая стрелка в первой строке ячейки. Затем вы можете пройти через свой код строка за строкой, нажав F10
еще раз.
Рисунок 1.1 — Переход в код с F10
Часть 3. Проверка переменных
Пройдя через df = px.data.tips()
него , вы можете найти переменную JUPYTER:VARIABLES
в разделе Debug Console
:
Рисунок 3.1 — Консоль отладки и переменные
Вы также можете просмотреть содержимое df
, нажав на значок, выделенный выше, чтобы Show variable in data viewer
:
Рисунок 3.2 — Средство просмотра данных
Часть 4. Установка точек останова
Если в обратном вызове происходит какая-то обработка данных, вы можете установить точку останова внутри обратного вызова:
Рисунок 4.1 — Установка точки останова.
Часть 5. Проверка обратных вызовов
Чтобы процесс перешел к этой конкретной точке останова, вы можете нажать F5
или даже запустить обратный вызов через приложение Dash, созданное в этом примере кода. Например, выбрав aggsunset
из выпадающего меню:
Рисунок 5.1 — Сделайте выбор для запуска отладки обратного вызова
Теперь вы должны заметить, что на самой фигуре ничего не происходит. И если вы вернетесь к VSCode, вы увидите, что процесс отладки перешел к вашей точке останова.
Рисунок 5.2 — Код остановки точки останова после запуска обратного вызова
Как вы можете видеть, новая переменная определяется в обратном вызове как df2 = df.copy()
. Как ни странно, но теперь вы можете видеть только локальные переменные обратного вызова:
Рисунок 5.2 — Переменные Jupyter при отладке
Но одна приятная вещь здесь заключается в том, что вы можете проверить ввод из раскрывающегося списка в своем приложении, который:
colorscale = 'agsunset'
Что еще круче, так это то, что каждый раз, когда вы меняете значение выпадающего списка и запускаете обратный вызов, значение обновляется в разделе JUPYTER:VARIABLES
:
Раздел 6 — Интерактивное редактирование переменных
Рисунок 6.1 — Изменение переменных при отладке обратных вызовов
Если вы перейдете на DEBUG CONSOLE
вкладку, вы можете поближе ознакомиться с df2
df2.tail()
:
Рисунок 6.2 — Проверка новых переменных
И вы даже можете добавить новую колонку с df2['new_var] = 1
: