Встроенная отладка Python - PullRequest
2 голосов
/ 08 мая 2020

Я следил за официальной Python документацией по встраиванию и расширению Python среды выполнения. Хотя мне удалось заставить это работать, я не мог понять, как отлаживать код c ++ и Python вместе.

Visual Studio предоставляет возможность отладки в смешанном режиме, в которой вы можете выполнить код и перейти от точки останова C ++ к точке останова Python. Я пытался следовать официальным документам microsoft по этому поводу, и у меня все заработало, но только для расширений c / c ++. Когда интерпретатор встроен, я не мог заставить его работать и не мог найти никаких ресурсов о том, как заставить его работать.

Можно ли встроить интерпретатор и по-прежнему иметь возможность отлаживать Python и код c ++ вместе в Visual Studio?

1 Ответ

1 голос
/ 05 июня 2020

Хорошо, оказывается, я сделал несколько ошибок.

Официальная документация относится к отладке расширений C ++ для Python. В документации Microsoft говорится о пакете «Python tools для Visual Studio» как о необходимом пакете, который необходимо установить в установщике Visual Studio для отладки в смешанном режиме. Справедливо. Однако в документации по отладке в смешанном режиме исследуется только сценарий отладки расширений C ++ с Python. Что происходит: когда вы устанавливаете инструменты Python, Visual Studio устанавливает собственную копию Python (или несколько версий Python). Вы можете выбрать, какая версия интерпретатора будет использоваться в окне среды Python. Но я пытался отладить код Python, который выполняется во встроенном интерпретаторе! Произошло то, что визуальная студия создала отдельный автономный интерпретатор Python. Он прикрепил к нему отладчик, но, естественно, он не запускал никакого кода, так как все сценарии Python выполнялись на встроенном интерпретаторе.

Тогда решение следующее (я использую cPython):

  1. Установите Python инструменты для Visual Studio. Он содержит отладчик Python.
  2. Сборка cPython от источника до каталога. Обратите внимание, что есть два каталога, которые необходимы Python: каталог, в котором он создается, и каталог, в котором клонируется репозиторий cPython. Я вернусь к этим каталогам позже. На windows вы можете собрать Python, используя предоставленный сценарий сборки P C.
  3. Обратитесь к официальной Python документации о встраивании интерпретатора. Вам необходимо добавить включаемые файлы из репозитория и связать встроенную библиотеку с шага 2.
  4. Вам необходимо создать среду Visual Studio Python для встроенного интерпретатора. Этот параметр среды позволяет Visual Studio не использовать собственный интерпретатор. В окне среды Python добавьте новую среду: используйте каталог сборки Python в качестве пути префикса. Исходя из этого, Visual Studio определит большинство других областей. Наконец, вы можете добавить в эту среду пользовательскую переменную окружения PATH. Встроенный интерпретатор должен знать, где расположены Python стандартные библиотеки, а также другие артефакты сборки. Просто добавьте два каталога, указанные на шаге 2, в переменную среды PATH (например, "PATH =% PATH%; dir \ to \ build \ python; dir \ to \ repositories \ cpython", без кавычек) .
  5. Наконец, вам нужно переключиться на отладку Python \ native и выбрать новую среду Python.
...