Точки останова не попадают в VS Code при отладке приложения Python Flask

Я новичок в разработке Python Flask и VS Code. Я пытался создать приложение, обращаясь к руководствам ниже.

https://code.visualstudio.com/docs/python/tutorial-flask

https://github.com/Microsoft/python-sample-vscode-flask-tutorial \

https://code.visualstudio.com/docs/python/debugging

Репо для справки: https://github.com/iamshivprasad/analytics

Клонированная структура папок:

- Development
  - .vscode
    - launch.json
  - analyticspyengine
    - analytics_modules
    - controllers
    - datainterfaces
    - utils
    - __init__.py
    - analyticsservices.py
    - webapp.py
    .
    .
    .

Я могу успешно запустить программу с указанными ниже настройками в launch.json.

     {
        "name": "Python: Flask",
        "type": "python",
        "request": "launch",
        "module": "flask",
        "env": {
            "FLASK_APP": "analyticspyengine.webapp",
            "FLASK_DEBUG": true,
            "FLASK_ENV": "development"
        },
        "args": [
            "run"
        ],
        "jinja": true
    }

Содержание webapp.py

#!/usr/bin/python3
import sys
from . import app   
from . import analyticsservices

Контент analyticspyengine / __init__.py

#!/usr/bin/python3
import sys, os
sys.path.insert(0, os.path.join(os.path.dirname(__file__)))

from flask import Flask
app = Flask(__name__) 

Я столкнулся со следующими проблемами. Совершенно беспомощный и разочарованный !!!

1) Выполнение не достигает точек останова

2) После запуска приложения с указанными выше настройками я не могу остановить службу. то есть даже после остановки отладчика приложение кажется запущенным. Я вижу, что запросы обслуживаются через вывод терминала и почтальон. Процесс кажется живым, пока VS Code не будет закрыт.

Может кто-нибудь пролить свет?


person iamshiv    schedule 08.02.2019    source источник


Ответы (1)


Похоже, включение автоматической перезагрузки (снятие флага «--no-reload») приводит к тому, что отладчик VS Code больше не работает. Ребята, работающие с кодом VS, говорят, что они работают над этим: https://github.com/Microsoft/vscode-python/issues/4355.

Итак, на данный момент вам следует добавить флаги «no-reload» и «no-debugger» в раздел launch.json args.

Эта конфигурация launch.json заставит работать отладчик VS Code:

{
    "name": "Python: Flask",
    "type": "python",
    "request": "launch",
    "module": "flask",
    "env": {
        "FLASK_APP": "application.py",
        "FLASK_ENV": "development",
        "FLASK_DEBUG": "0"
    },
    "args": [
        "run",
        "--no-debugger",
        "--no-reload"
    ],
    "jinja": true
}

Дополнительная информация здесь.

person Marius Stănescu    schedule 03.06.2019
comment
Спасибо! Я был сбит с толку, потому что мне нужен отладчик, а не отладчик FLASK. Отключите отладчик Flask с помощью параметра --no-debugger Arg и позвольте отладчику VS Code работать вместо этого. Отлично - person Sean McCarthy; 24.02.2020
comment
Похоже, они повторно ввели похожую ошибку в vscode 1.50, и это творило чудеса :) - person JBSnorro; 17.11.2020
comment
по какой-то причине мне пришлось удалить FLASK_DEBUG: 0, а также перезапустить визуальный код, после чего он начинает попадать в точку отладки. - person dawncode; 03.06.2021