Vs code как настроить дебаг консоль

Содержание
  1. Отладка php в Visual Studio Code (Xdebug, Windows)
  2. Установка PHP Debug
  3. Установка и настройка Xdebug
  4. Настройка Visual Studio code
  5. Отладка php в Visual Studio code
  6. Отладка JavaScript в Google Chrome и Visual Studio Code
  7. Предустановки
  8. Основы отладки
  9. Отладка в Google Chrome
  10. Вкладка Sources
  11. Вкладка Scope
  12. Вкладка Watch
  13. Пошаговое выполнение, стек вызовов и список точек останова
  14. Отладка в Visual Studio Code
  15. Интерактивная отладка с помощью Visual Studio Code
  16. Запуск и отладка экспериментов в локальной среде
  17. Предварительные требования
  18. Отладка эксперимента локально
  19. Отладка и устранение неполадок в конвейерах машинного обучения
  20. Предварительные требования
  21. Принцип работы
  22. Настройка скриптов Python
  23. Настройка конвейера машинного обучения
  24. Настройка среды разработки
  25. Подключение отладчика
  26. Устранение неполадок развертываний
  27. Настройка среды разработки
  28. Создание образа, содержащего debugpy
  29. Отладка службы
  30. Остановка контейнера
  31. Дальнейшие действия

Отладка php в Visual Studio Code (Xdebug, Windows)

В некоторых случаях может возникнуть необходимость отладки приложений на php. Visual Studio code предоставляет такую возможность при условии установки дополнительного расширения PHP Debug (marketplace, github).

Установка PHP Debug

Для установки нажмите Ctrl+p и введите команду ext install php-debug . Нажмите на кнопку «включить», в итоге вы должны увидеть примерно следующее:

Установка и настройка Xdebug

PHP Debug использует для отладки Xdebug. Для настройки Xdebug пройдите по ссылке. Предполагается, что на локальной машине уже установлен и настроен сервер apache. Здесь и далее действия указаны для Windows. Можно создать файл, например, test.php содержащий:

Открыть его в браузере и скопировать содержимое страницы в диалоговое окно. Другой способ:

  • win+R ;
  • cmd + Enter ;
  • php -i > phpinfo.text ;
  • открыть любым удобным редактором phpinfo.txt и все его содержимое вставить в диалоговое окно.

Далее следуйте инструкциям по установке: скачайте .dll и не изменяя его имени скопируйте его в указанную папку, дополните файл php.ini указанной в руководстве строкой.

Кроме этого, добавьте нижеследующие строки. Итоговое добавление будет примерно таким:

Как вы уже, возможно догадались, в данном примере на локальной машине установлен XAMPP.

Обратите внимание на строку xdebug.remote_host=127.0.0.2 . По умолчанию Xdebug «слушает» порт 127.0.0.1. Укажите здесь, адрес отлаживаемого сайта.

Примечание: С версией Xdebug 2.5 и выше Visual Studio code не работает. Поэтому выбирайте соответствующий вашей версии php файл *.dll.

Настройка Visual Studio code

Вызовите панель отладки (1) и нажмите на иконку с маленькой шестеренкой (2).

В появившемся списке выберите PHP . Автоматически сформируется файл launch.json .

Настройка PHP Debug на этом окончена.

Отладка php в Visual Studio code

Откройте в браузере ваше приложение\сайт. Откройте папку с приложением в Visual Studio code. Установите в нужных файлах и строках точки остановки. Откройте панель отладки и выберите для запуска отладки команду Listen for Xdebug (1). Нажмите кнопку запуска (2).

Обновите страницу в браузере и наслаждайтесь.

Источник

Отладка JavaScript в Google Chrome и Visual Studio Code

Способность отладки кода является важным навыком разработчика. Важно понимать и использовать широкий спектр инструментов отладки, которые существуют для конкретного языка программирования.

К сожалению, отладка может показаться не столь очевидной при работе с JavaScript за пределами полноценной среды IDE. По крайней мере — на первый взгляд.

В данной статье будет рассмотрен вопрос, как можно выполнять отладку JavaScript-кода в инструменте Google Chrome Dev Tools и в редакторе кода Visual Studio Code.

Примечание переводчика: перейдя по этой ссылке, можно ознакомиться с видеоверсией данной статьи Debugging JavaScript in Google Chrome and Visual Studio Code на английском языке.

Предустановки

В этой статье процесс отладки будет рассмотрен на примере тестового приложения под названием «Quick Chat»:

У вас есть два способа работы с этим приложением. Вы можете самостоятельно создать его, воспользовавшись этой серией видеоуроков. Или же вы можете использовать исходный код уже готового приложения «Quick Chat»:

Какой бы вариант вы не выбрали, вам потребуется локально запустить приложение «Quick Chat».

Вы можете запустить приложение из-под Node.js ( как это делаю я). Или воспользоваться плагином под Visual Studio Code под названием Live Server.

Если вы новичок в работе с этим плагином, то можете научиться работать с ним при помощи этого видео — Live Server Extension in Visual Studio Code.

Примечание переводчика: видео на английском языке.

В процессе создания данной статьи я добавил в приложении «Quick Chat» небольшую намеренную ошибку, которая не позволяет зарегистрировать пользователя после его входа в систему.

С технической точки зрения я неправильно получаю имя пользователя, используя для этого usernameInput.text вместо правильного варианта usernameInput.value . Если бы я допустил такую ошибку в реальной жизни, моей первой мыслью было бы воспользоваться инструментом console.log() .

Но это не совсем тот случай, который мог бы мне помочь, как вы можете увидеть на изображении ниже. Если же использование console.log() было также вашей первой мыслью — вы попали по адресу и правильно делаете, что читаете эту статью!

Основы отладки

Начнем с основ. Идея отладки заключается в том, что внутри программного кода можно устанавливать так называемые точки останова ( breakpoints) для того, чтобы остановить выполнение программы в определенном месте.

Это дает вам, как разработчику, возможность взглянуть на текущее состояние приложения и проверить, например, значения переменных в нём. Вы даже можете сделать еще больше и отследить любые переменные по своему выбору, чтобы всякий раз, когда приложение останавливается, вы могли проверить значения этих переменных.

После установки точки останова ( breakpoint) в коде, как правило, есть несколько вариантов дальнейших действий:

  • продолжить выполнение программы
  • пошагово пройтись по всем этапам выполнения программы — строка за строкой
  • выйти из текущей функции, в которой вы находитесь
  • перейти к выполнению следующей функции

У вас также будет доступ к просмотру стека вызовов ( call stack). Другими словами, поскольку в программе функции могут вызывать на исполнение другие функции, то можно просмотреть историю вызовов этих функций.

Отладка в Google Chrome

Чтобы начать отладку приложения в браузере ​​Google Chrome, добавьте в обработчике события кнопки clickBtn оператор debugger , как показано ниже:

Когда выполнение программы дойдет до строки с оператором debugger , приложение будет приостановлено и автоматически активируются инструменты отладки браузера Google Chrome.

Обратите внимание, что приложение в окне браузера закрашено серым цветом, чтобы показать, что оно приостановлено. Также обратите внимание, что вкладка Sources в Chrome Dev Tools открылась автоматически:

Давайте разберемся, что мы видим на вкладке Sources .

Вкладка Sources

Первое, что вы могли заметить на этой вкладке — это копию исходного кода приложения. Это код, который браузер загрузил и с которым он работает.

Вы также можете заметить, что строка кода с оператором debugger подсвечена синим цветом, чтобы сообщить нам, что выполнение приложения остановлено на данном участке кода:

Читайте также:  Не работает розетка прикуривателя форд фокус 3

Браузер Google Chrome предоставляет нам возможность просматривать исходный код приложения. Имея перед собой исходный код, можно установить в нем точки останова.

Точка останова предназначена для обозначения места, на котором нужно остановить выполнение программы. Оператор debugger , который мы использовали в примере выше, функционирует как точка останова, но в исходном коде приложения такая точка останова необязательно должна быть только одной.

Точка останова — преднамеренная остановка или приостановка выполнения программы

Чтобы добавить точку останова, нужно выполнить клик мыши на gutter — поле слева от нумерации строк кода. Как только вы выполните это действие, то заметите, что браузер Google Chrome автоматически добавил эту точку останова в список «Breakpoints»:

Вкладка Scope

На вкладке «Scope» вы можете отслеживать переменные в своем приложении. Обратите внимание, что на этой вкладке есть три раздела: локальная область видимости ( Local), глобальная область видимости ( Global) и раздел сценариев ( Script).

В разделе сценариев вы можете отслеживать переменные в области видимости текущего скрипта:

Большую часть времени процесса отладки приложения вы будете проводить именно в этой вкладке. Это гораздо более эффективная альтернатива использованию многочисленным console.log() .

Вкладка Watch

Как уже упоминалось ранее, помимо просмотра переменных на вкладке «Scope», вы также можете определить переменные, значения которых вы хотели бы отслеживать на всем этапе выполнения программы.

Добавляя переменную на вкладке «Watch», каждый раз, когда вы устанавливаете точку останова, вы можете быстро проверить значение этой переменной (которая может иметь значение undefined в зависимости от того, где вы находитесь в коде).

Нажмите значок плюса и введите имя переменной, которую необходимо отслеживать, в нашем случае это usernameInput :

Пошаговое выполнение, стек вызовов и список точек останова

Раздел вкладки «Sources», расположенный в левом нижнем углу окна отладчика, позволяет просмотреть список точек останова, стек вызовов ( call stack) и т. д.

В стеке вызовов есть только одна функция, которая является обработчиком события для кнопки входа. Функция указана, потому что это единственная функция, которая была вызвана на данный момент. Поскольку одни функции могут вызывать на исполнение другие функции, то эта цепочка будет обновляться соответствующим образом.

Также обратите внимание на кнопки со стрелками в верхней части экрана. Они соответствуют функциям, указанным выше, для продолжения выполнения вашего кода или прохождения по нему по строкам ( stepping). Я бы рекомендовал протестировать немного эти кнопки, чтобы привыкнуть к тому, каким образом можно осуществлять выполнение кода.

Наконец, существуют различные типы точек останова, которые могут быть заданы. Давайте рассмотрим пример создания условной точки останова ( conditional breakpoint), которая будет срабатывать только при выполнении определенного условия.

Например, предположим, что мы хотим предотвратить обработку события на кнопке входа в систему только тогда, когда пользователь пытается войти в систему без ввода имени пользователя.

Мы можем сделать это, щелкнув правой кнопкой мыши на поле gutter и создав точку останова со следующим условием — usernameInput.text === » :

В случае отладки приложения Quick Chat , если вы нажмете кнопку входа в систему без имени пользователя, будет запущена эта точка останова. В противном случае код будет продолжать выполняться как обычно.

Обратите внимание, что существует ещё больше доступных вариантов точек останова, которые не рассматриваются в данной статье.

Отладка в Visual Studio Code

Инструмент Chrome Developer Tools является одним из лучших в своем роде. Как вы уже видели, он предлагает отличные возможности и функционал для отладки приложения.

Однако командой разработчиков Visual Studio Code была проделана большая работа для того, чтобы сделать процесс отладки в этом редакторе ещё более совершенным.

Мне очень нравится Visual Studio Code и я провожу в нем больше времени, чем в каком-либо другом редакторе кода. Этот процесс включает в себя и отладку.

Чтобы начать отладку кода в VS Code, вам нужно будет установить плагин Debugger for Chrome :

Давайте познакомимся с вкладкой Debug . По умолчанию она расположена на боковой панели редактора. Откройте эту вкладку, нажав на значок, который выглядит как жучок ( bug).

Открыв эту панель, вы увидите инструменты, очень похожие на те, что мы видели в браузере Google Chrome — переменные, стек вызовов, точки останова:

Большинство функциональных возможностей, с которыми мы имели дело в Chrome Dev Tools, также доступны в VS Code.

Теперь, когда мы познакомились с вкладкой Debug , нам необходимо создать конфигурацию, которая укажет редактору VS Code, как ему отлаживать наше приложение.

VS Code хранит конфигурацию отладки в файле launch.json внутри папки .vscode . Чтобы VS Code создал этот файл для нас, в меню редактора откройте выпадающий список «Нет конфигураций» («No Configurations») и выберите «Добавить конфигурацию» («Add Configuration»).

VS Code хранит конфигурацию отладки в файле с именем launch.json внутри папки .vscode

Затем из этого списка выберите пункт «Chrome»:

Источник

Интерактивная отладка с помощью Visual Studio Code

Узнайте, как выполнять интерактивную отладку экспериментов, конвейеров и развертываний Машинного обучения Azure с помощью Visual Studio Code (VS Code) и debugpy.

Запуск и отладка экспериментов в локальной среде

Используйте расширение Машинное обучение Azure для проверки, запуска и отладки экспериментов машинного обучения перед их отправкой в облако.

Предварительные требования

Расширение Машинного обучения Azure для VS Code (предварительный просмотр). Дополнительные сведения см. в разделе Настройка расширения Машинного обучения Azure VS Code.

Расширение Машинного обучения Azure для VS Code по умолчанию использует CLI (версии 2.0). Инструкции в этом руководстве предполагают использование версии CLI 1.0. Чтобы переключиться на CLI версии 1.0, задайте для параметра azureML.CLI Compatibility Mode в Visual Studio Code значение 1.0 . дополнительные сведения об изменении параметров в Visual Studio Code см. в документации по параметрам пользователя и рабочей области.

Docker Desktop для Mac и Windows

Подсистема Docker для Linux.

Для Windows, хотя и не является обязательным, настоятельно рекомендуется использовать Docker с подсистемой Windows для Linux (WSL) 2.

Отладка эксперимента локально

Перед выполнением эксперимента локально убедитесь в том, что:

  • DOCKER работает.
  • azureML.CLI Compatibility Mode параметр в Visual Studio Code имеет значение 1.0 , как указано в предварительных требованиях

В VS Code откройте представление расширения Машинного обучения Azure.

Разверните узел подписки, содержащий рабочую область. Если у вас ее еще нет, можно создать рабочую область машинного обучения Azure с помощью расширения.

Разверните узел рабочей области.

Щелкните правой кнопкой мыши узел Эксперименты и выберите Создать эксперимент. При появлении запроса введите имя для эксперимента.

Разверните узел эксперименты, щелкните правой кнопкой мыши эксперимент, который необходимо запустить, и выберите команду Запустить эксперимент.

Читайте также:  Насос для осмоса не работает

В списке параметров для запуска эксперимента выберите локально.

В первый раз используйте только в Windows. При появлении запроса на разрешение общей папки выберите Да. Включение файлового ресурса позволяет Docker подключать каталог, содержащий скрипт, к контейнеру. Кроме того, он позволяет Docker сохранять журналы и выходные данные из запуска во временном каталоге в системе.

Выберите Да для отладки эксперимента. В противном случае нажмите кнопку Нет. Если выбрать нет, ваш эксперимент будет выполняться локально без подключения к отладчику.

Выберите создать новую конфигурацию запуска, чтобы создать конфигурацию запуска. Конфигурация запуска определяет скрипт, который требуется запустить, зависимости и наборы данных. Кроме того, если у вас уже есть такая возможность, выберите ее в раскрывающемся списке.

  1. Подготовка среды. Вы можете выбрать любой из машинное обучение Azure проверенного или создать свой собственный.
  2. Укажите имя файла сценария для выполнения. Путь задается относительно каталога, открытого в VS Code.
  3. Выберите, следует ли использовать набор данных Машинного обучения Azure. Вы можете создавать наборы данных машинного обучения Azure с помощью расширения.
  4. Debugpy требуется для подключения отладчика к контейнеру, выполняющему эксперимент. Чтобы добавить Debugpy в качестве зависимости, выберите Добавить Debugpy. В противном случае выберите Пропустить. Если вы не добавили debugpy в качестве зависимости, это запускает ваш эксперимент без подключения к отладчику.
  5. В редакторе откроется файл конфигурации, содержащий параметры конфигурации запуска. Если вы удовлетворены параметрами, выберите Отправить эксперимент. Кроме того, вы можете открыть палитру команд (Представление > Палитра команд) в строке меню и ввести команду Azure ML: Submit experiment в текстовое поле.

После отправки эксперимента создается образ Docker, содержащий скрипт, и конфигурации, указанные в конфигурации запуска.

Когда начинается процесс сборки образа Docker, файловый поток 60_control_log.txt выводится в консоль вывода в VS Code.

Первое создание образа Docker может занять несколько минут.

После сборки образа появится запрос на запуск отладчика. Задайте точки останова в скрипте и нажмите кнопку запустить отладчик, когда будете готовы начать отладку. Это присоединяет отладчик VS Code к контейнеру, выполняющему эксперимент. Кроме того, в расширении Машинное обучение Azure наведите указатель мыши на узел для текущего запуска и щелкните значок воспроизведения, чтобы запустить отладчик.

Для одного эксперимента нельзя использовать несколько сеансов отладки. Однако можно выполнить отладку двух или более экспериментов, используя несколько экземпляров VS Code.

На этом этапе вы сможете пошагово отлаживать код с помощью VS Code.

Если вы хотите отменить запуск в любой момент, щелкните правой кнопкой мыши узел выполнить и выберите команду Отменить запуск.

Аналогично удаленному запуску эксперимента можно развернуть узел выполнения, чтобы проверить журналы и выходные данные.

Образы Docker, использующие те же зависимости, определенные в вашей среде, используются повторно между запусками. Однако при запуске эксперимента с помощью новой или другой среды создается новый образ. Так как эти образы сохраняются в локальном хранилище, рекомендуется удалить старые или неиспользуемые образы Docker. Чтобы удалить образы из системы, используйте Docker CLI или расширение VS Code Docker.

Отладка и устранение неполадок в конвейерах машинного обучения

В некоторых случаях может потребоваться интерактивная отладка кода Python, используемого в конвейере машинного обучения. С помощью VS Code и debugpy можно присоединяться к коду, как он выполняется в среде обучения.

Предварительные требования

Рабочая область машинного обучения Azure, настроенная для использования виртуальной сети Azure.

Конвейер машинного обучения Azure, использующий скрипты Python в рамках этапов конвейера. Например, PythonScriptStep.

Машинное обучение вычислительного кластера Azure, который находится в виртуальной сети и используется конвейером для обучения.

Среда разработки, которая находится в виртуальной сети. Средой разработки может быть одно из следующего:

  • Виртуальная машина Azure в виртуальной сети
  • Вычислительный экземпляр виртуальной машины записной книжки в виртуальной сети
  • Клиентский компьютер, имеющий подключение к виртуальной сети по частной сети либо по VPN, либо через ExpressRoute.

Дополнительные сведения об использовании виртуальной сети Azure с Машинным обучением Azure см. в статье Общие сведения об изоляции и конфиденциальности виртуальной сети.

Хотя вы можете работать с ресурсами Машинного обучения Azure, которые не находятся за виртуальной сетью, рекомендуется использовать виртуальную сеть.

Принцип работы

Этапы конвейера машинного обучения запускают скрипты Python. Эти скрипты изменяются для выполнения следующих действий:

Регистрировать IP-адрес узла, на котором они выполняются. Используйте IP-адрес для подключения отладчика к сценарию.

Запустите компонент отладки debugpy и дождитесь подключения отладчика.

В среде разработки вы отслеживаете журналы, созданные процессом обучения, чтобы найти IP-адрес, на котором выполняется сценарий.

Вы указываете VS Code IP-адреса для подключения отладчика к с помощью launch.json файла.

Вы подключаете отладчик и интерактивно пройдите по сценарию.

Настройка скриптов Python

Чтобы включить отладку, внесите следующие изменения в скрипты Python, используемые шагами в конвейере ML:

Добавьте в файл следующие операторы импорта:

Добавьте следующие аргументы. Эти аргументы позволяют включить отладчик по мере необходимости и задать время ожидания для подключения отладчика:

Добавьте следующие операторы. Эти инструкции загружают текущий контекст выполнения, чтобы можно было зарегистрировать IP-адрес узла, на котором выполняется код:

Добавьте инструкцию if , запускающую debugpy, и дождитесь присоединения отладчика. Если отладчик не подключается до истечения времени ожидания, сценарий продолжится в нормальном режиме. Обязательно замените значения HOST и PORT в listen собственной функцией.

В следующем примере кода Python показан простой файл train.py , позволяющий выполнять отладку:

Настройка конвейера машинного обучения

Чтобы предоставить пакеты Python, необходимые для запуска debugpy и получения контекста выполнения, создайте среду и задайте pip_packages=[‘debugpy’, ‘azureml-sdk== ‘] . Измените версию пакета SDK, чтобы она соответствовала используемой. В следующем фрагменте кода показано, как создать кластер AKS:

В разделе Настройка скриптов Python в скрипты, используемые этапами конвейера машинного обучения, были добавлены новые аргументы. В следующем фрагменте кода показано, как использовать эти аргументы, чтобы включить отладку для компонента и установить время ожидания. Здесь также показано, как использовать созданную ранее среду, задав runconfig=run_config :

При выполнении конвейера каждый шаг создает дочерний запуск. Если включена отладка, то измененный сценарий записывает в журнал сведения, аналогичные следующему тексту в 70_driver_log.txt для дочернего запуска:

Сохраните значение ip_address . Они будут использоваться в следующем разделе.

Вы также можете найти IP-адрес из журналов выполнения для дочернего выполнения этого шага конвейера. Дополнительные сведения о просмотре этих сведений см. в статье мониторинг запусков и метрик эксперимента машинного обучения Azure.

Настройка среды разработки

Чтобы установить debugpy в среде разработки VS Code, используйте следующую команду:

Дополнительные сведения об использовании PTVSD в VS Code см. на этой странице.

Чтобы настроить VS Code для взаимодействия с вычислителем Машинного обучения Azure, в котором работает отладчик, создайте новую конфигурацию отладки:

Читайте также:  Не работает холодильник самсунг no frost

В VS Code выберите меню Отладка, а затем щелкните Открыть конфигурации. Откроется файл с именем launch.json.

В файле launch.json найдите строку, содержащую «configurations»: [ , и вставьте после нее следующий текст. Измените запись «host»: » » на IP-адрес, возвращенный в журналах из предыдущего раздела. Измените запись «localRoot»: «$/code/step» на локальный каталог, содержащий копию отлаживаемого скрипта:

Если в разделе конфигурации уже есть другие записи, добавьте запятую (,) после вставленного кода.

Рекомендуется, особенно для конвейеров, размещать ресурсы для скриптов в отдельных каталогах, чтобы код был важен только для каждого из шагов. В этом примере пример значения localRoot ссылается на /code/step1 .

При отладке нескольких скриптов в разных каталогах создайте отдельный раздел конфигурации для каждого скрипта.

Сохраните файл launch.json.

Подключение отладчика

Откройте VS Code и откройте локальную копию скрипта.

Задайте точки останова, где сценарий должен останавливаться после присоединения.

Пока в дочернем процессе выполняется сценарий, а в журналах отображается Timeout for debug connection , используйте клавишу F5 или выберите параметр Отладка. При появлении запроса выберите конфигурацию Azure Machine Learning: Docker Debug (Машинное обучение Azure: отладка Docker). Можно также выбрать значок отладки на боковой панели, в раскрывающемся меню Отладка выберите машинное обучение Azure: Удаленная отладка, а затем с помощью зеленой стрелки присоединить отладчик.

На этом этапе VS Code подключается к PTVSD внутри контейнера Docker и останавливается при достижении точки останова, заданной ранее. Теперь вы можете пошагово выполнять код, просматривать переменные и т. д.

Если в журнале отображается запись Debugger attached = False , то время ожидания истекает, и скрипт продолжает работу без отладчика. Снова отправьте конвейер и подключите отладчик после сообщения Timeout for debug connection и до истечения времени ожидания.

Устранение неполадок развертываний

В некоторых случаях может потребоваться интерактивная отладка кода Python, содержащегося в развертывании модели. Например, если начальный сценарий не работает и причину невозможно определить с помощью дополнительного ведения журнала. Используя VS Code и debugpy, вы можете присоединить отладчик к коду, выполняющемуся внутри контейнера Docker.

Этот метод отладки не работает при использовании Model.deploy() и LocalWebservice.deploy_configuration для развертывания модели в локальной среде. В этом случае необходимо создать образ, используя метод Model.package().

Для локальных развертываний веб-службы требуется рабочая установка Docker в локальной системе. Дополнительные сведения об использовании Docker см. в соответствующей документации. Обратите внимание, что при работе с экземплярами вычислений Docker уже установлен.

Настройка среды разработки

Чтобы установить debugpy в локальной среде разработки VS Code, используйте следующую команду:

Дополнительные сведения об использовании PTVSD в VS Code см. на этой странице.

Чтобы настроить VS Code для взаимодействия с образом Docker, создайте новую конфигурацию отладки:

В VS Code выберите меню Отладка в области выполнения, а затем выберите Открыть конфигурации. Откроется файл с именем launch.json.

В файле launch.json найдите единицу «configurations» (строку, содержащую «configurations»: [ ) и вставьте после нее следующий текст.

После вставки launch.js файл должен выглядеть следующим образом:

Если в разделе конфигурации уже есть другие записи, добавьте запятую ( , ) после вставленного кода.

Этот раздел присоединяется к контейнеру Docker через порт 5678.

Сохраните файл launch.json.

Создание образа, содержащего debugpy

Измените среду conda для своего развертывания, добавив в нее PTVSD. В следующем примере демонстрируется добавление с помощью параметра pip_packages :

Чтобы запустить debugpy и дождаться подключения при запуске службы, добавьте следующее в начало файла score.py :

Создайте образ на основе определения среды и извлеките его в локальный реестр.

В этом примере предполагается, что ws указывает на вашу рабочую область Машинное обучение Azure, а model представляет собой развертываемую модель. Файл myenv.yml содержит зависимости conda, созданные на шаге 1.

После создания и скачивания образа (этот процесс может занять больше 10 минут, так что, пожалуйста, проявите терпение) путь к нему (включая репозиторий, имя и тег, который в данном случае также является хэш-кодом) отображается в сообщении следующего вида:

Чтобы упростить работу с изображением локально, можно использовать следующую команду, чтобы добавить тег для этого изображения. Замените myimagepath в следующей команде на значение местоположения из предыдущего шага.

На остальных шагах для обозначения расположения локального образа вы можете указывать debug:1 вместо значения полного пути.

Отладка службы

Если вы установили время ожидания для подключения debugpy в файле score.py , необходимо подключить VS Code к сеансу отладки до истечения этого времени. Запустите VS Code, откройте локальную копию score.py , установите точку останова и подготовьте ее к работе, прежде чем выполнять действия, описанные в этом разделе.

Дополнительные сведения об отладке и установке точек останова см. на этой странице.

Чтобы запустить контейнер Docker с помощью образа, используйте следующую команду:

Это присоединяет ваш score.py локально к объекту к контейнеру. Таким образом, любые изменения в редакторе автоматически отражаются в контейнере

Для лучшего удобства можно переходить к контейнеру с помощью нового интерфейса VS Code. Выберите Docker расширение на боковой панели VS Code, найдите созданный локальный контейнер в этой документации debug:1 . Щелкните этот контейнер правой кнопкой мыши и выберите «Attach Visual Studio Code» , затем автоматически откроется новый интерфейс VS Code, и этот интерфейс отобразится внутри созданного контейнера.

В контейнере выполните следующую команду в оболочке

После этого в оболочке в контейнере можно увидеть следующие выходные данные:

Чтобы присоединить VS Code к PTVSD внутри контейнера, откройте код VS Code и нажмите клавишу F5 или выберите Отладка. При появлении запроса выберите конфигурацию Azure Machine Learning: Docker Debug (Машинное обучение Azure: отладка Docker). Вы также можете выбрать значок расширения Запуск на боковой панели, запись Azure Machine Learning Deployment: Docker Debug (Машинное обучение Azure: отладка Docker), а затем щелкнуть зеленую стрелку, чтобы присоединить отладчик.

После нажатия зеленой стрелки и подключения отладчика в контейнере VS Code интерфейс можно увидеть некоторые новые сведения:

Кроме того, в основном интерфейсе VS Code доступны следующие возможности:

И теперь локальный объект, score.py присоединенный к контейнеру, уже остановлен в точках останова, где вы задали значение. На этом этапе VS Code подключается к PTVSD внутри контейнера Docker и останавливается при достижении точки останова, заданной ранее. Теперь вы можете пошагово выполнять код, просматривать переменные и т. д.

Дополнительные сведения об использовании VS Code для отладки Python см. на странице Отладка кода Python.

Остановка контейнера

Чтобы остановить контейнер, используйте следующую команду:

Дальнейшие действия

Теперь, когда вы настроили VS Code удаленно, вы можете использовать вычислительный экземпляр в качестве удаленного вычислений от VS Code для интерактивной отладки кода.

Ознакомьтесь с дополнительными сведениями об устранении неполадок:

Источник

Оцените статью