#python #visual-studio-code #jupyter-notebook #data-science #vscode-debugger
#python #visual-studio-code #jupyter-ноутбук #наука о данных #vscode-отладчик
Вопрос:
У меня есть файл ‘.py’, и я запускаю его функции в интерактивном окне Python (функция VSCODE, похожая на записную книжку). Все переменные и функции хранятся только в этой среде Jupyter. Они даже не доступны на терминале.
Img, который показывает переменные в моей среде Jupyter
Когда я нажимаю «Ячейка отладки» (как вы видите на img), начинается отладка с использованием среды Jupyter со всеми переменными, но она не останавливается на точках останова, которые я поставил. Как будто это не связано с VSCODE.
Если я наберу F5 или нажму «Запустить и отладить», начнется сеанс отладки, в котором будет запущен весь файл .py, а это не то, что я хочу.
В этом случае он может получить доступ к точкам останова, но не к моим переменным.
Я просто хочу отладить определенную часть своего кода, используя переменные, которые я уже создал. Должно быть, я пропустил что-то действительно простое.
Единственный ответ, который я могу найти в Интернете: «вы должны создать файл launch.json», но это не исправляет мою ситуацию.
Кто-нибудь знает, чего мне не хватает?
Ответ №1:
Когда я нажимаю «Ячейка отладки» в файле python, он выполняет результат в «Интерактивном» окне и может оставаться на точке останова, которую я установил, и я также могу видеть значение переменной, выполняемой в коде в «Интерактивном» окне :
Поскольку функция отладки кода python и «Интерактивная» функция предоставляются расширением python, а функция ядра Jupyter также зависит от расширения Jupyter, попробуйте переустановить эти два расширения и перезагрузить VS Code.
Моя среда:
VS Code: 1.53.1 (настройка пользователя)
python: 3.9.1
Расширения VS Code: Python(2021.1.502429796); Jupyter(2020.12.414227052); Pylance(2021.2.2).
ОС: Windows_NT x64 10.0.19041
Комментарии:
1. Привет, Джилл, спасибо за ответ. На самом деле, он останавливается на точках останова, как вы сказали. Но когда я нажимаю «Перейти в», он ведет себя по-разному в зависимости от функции, в которую я вхожу. В некоторых функциях он просто переходит к коду, как и ожидалось. В других функциях он открывает другую вкладку с заголовком «<ipython-input-15-2027ded5d38c>» и выполняет там код, как будто он находится в памяти или что-то в этом роде. В этом случае он не останавливается ни на каких точках останова на этой другой вкладке. Обе функции были загружены правильно. Я не знаю, что может быть причиной такого другого поведения. У вас есть какие-нибудь идеи?
2. @ Энрике Кардозо — Что такое «<ipython-input-15-2027ded5d38c>»? Когда мы вызываем другие модули или методы в коде, отладка будет входить в вызываемый файл. Не могли бы вы привести пример, который может свести к минимуму повторение проблемы, с которой вы сталкиваетесь?
3. Я думаю, что я только что обнаружил ошибку, но пока не смог ее воспроизвести. Представьте, что я не могу войти в функцию ‘example1 ()’, (потому что она открывает ipython-input и т. Д.). Я только что обнаружил, что после того, как я нажимаю «Ячейка отладки» в ячейке example1 (), просто чтобы запустить ее внутри отладчика, «Шаг в» работает так, как должен. Похоже, что эта функция была загружена на Python, но не в расширении VS Code Debug. Я не знаю, почему это произошло, но, по крайней мере, теперь я знаю, как это исправить. Я собираюсь отметить ваш ответ как решение. Спасибо 🙂