Отладка модуля Python с использованием кода VS нажатием клавиши F5 - PullRequest
0 голосов
/ 10 ноября 2018

Моя структура проекта выглядит следующим образом:

Project Folder
--setup.py
----Module Folder
------ __init__.py
------ __main__.py

Мой __main__.py файл содержит точку входа в мое приложение, и файл установки настроен так:

from setuptools import setup

setup(name='my_project',
      version='0.1.0',
      packages=['my_project'],
      entry_points={
          'console_scripts': [
              'my_project= my_project.__main__:main'
          ]})

Это означает, что я могу запустить свой код без отладчика, используя:

python -m my_project

Я попытался отладить с использованием кода VS, перейдя к моему __main__.py файлу и нажав F5 для запуска, но это не работает и выдает исключение. Как настроить код Visual Studio для запуска этого модуля в режиме отладки? Также, как мне убедиться, что программа также запускает модуль, а не файл, который я смотрю, когда нажимаю F5?

1 Ответ

0 голосов
/ 10 ноября 2018

После некоторых исследований я нашел решение:

  1. Перейдите в верхний правый раздел в меню отладки и щелкните значок, чтобы создать файл launch.json для этого проекта. Это будет использоваться для настройки VS Code.

Configure VS Code

  1. Если файл launch.json еще не создан, вставьте в него:
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python Module",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "pythonPath": "${config:python.pythonPath}",
            "module": "my_project",
            "cwd": "${workspaceRoot}",
        }
    ]
}

Я нашел этот код здесь: https://github.com/DonJayamanne/pythonVSCode/issues/518#issuecomment-260838308

  1. Просто использование этого ответа для меня не сработало, и я получил ошибку: No module named my_project но я нашел этот ответ: https://github.com/DonJayamanne/pythonVSCode/issues/826 В нем последний комментарий говорит, что вы добавили следующее в конфиг.

    "env": {"PYTHONPATH":"${workspaceRoot}"},
    

Это исправляет ошибку, и теперь вы можете нажать F5, и ваш модуль будет отлажен.

...