Как вы отлаживаете импортированные ноутбуки Jupyter в VS Code? - PullRequest
0 голосов
/ 24 января 2019

Используя расширение Python для кода Visual Studio , вы можете определить ячейки кода в своем коде Python, используя #%%:

#%%
a = 1
breakpoint()
b = 2

Затем вы можете нажать «Запустить ячейку» и VSКод откроет интерактивное окно Python и запустит текущую ячейку.К сожалению, если вы запустите ячейку выше, она потерпит неудачу из-за строки breakpoint().Ошибка:

StdinNotImplementedError: raw_input was called, but this frontend does not support input requests.

Если вы закомментируете точку останова, она запускается, но не останавливается на точке останова:

#%%
a = 1
#breakpoint()
b = 2

Если вы удалите специальную «Запустить ячейку», прокомментируйте ееостановится на точке останова, но затем вы потеряете Python Interactive:

a = 1
breakpoint()
b = 2

Вы можете (вроде) получить лучшее из обоих миров, заменив точку останова, щелкнув в канавке в коде Visual Studio, чтобы добавить точку останова:

Showing breakpoint

Однако я бы предпочел написать свои контрольные точки в коде.Есть идеи по поддержке этого дела?

1 Ответ

0 голосов
/ 03 июня 2019

Я только что нашел эту недооцененную библиотеку xdbg . У меня были некоторые раздражающие исключения, работающие на Python 3.7, но он отлично работает в моем интерактивном режиме в VS Code.

Я думаю, что xdbg - интересная альтернатива, кроме запуска импортированного ноутбука с использованием классического отладчика Python в VS Code . Обратите внимание, что когда вы работаете в интерактивном режиме, вы в основном строите скрипт Python, поэтому вы можете использовать отладчик очень просто. Единственным недостатком является то, что каждый раз, когда вы запускаете отладчик, скрипт запускается с нуля (что может раздражать, если вы запускаете скрипт, загружающий много данных или около того).

Мне бы хотелось иметь опции отладки для интерактивной консоли Python в VS Code, но, похоже, они пока не поддерживают ее.

Надеюсь, это поможет.

...