调试 Python Flask 应用程序时 VS Code 中未命中断点
Breakpoints are not hitting in VS Code while debugging Python Flask app
我是 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) 使用上述设置启动应用程序后,我无法停止该服务。即,即使在停止调试器之后,该应用程序似乎也是 运行。我可以看到正在通过终端输出和 Postman 处理请求。在关闭 VS Code 之前,该进程似乎还活着。
有人能解释一下吗?
似乎打开了自动重新加载(通过删除“--no-reload”标志),使得 VS 代码调试器不再工作。 VS 代码人员说他们正在研究它:https://github.com/Microsoft/vscode-python/issues/4355.
因此,目前,您应该在 launch.json args 部分添加 "no-reload" 和 "no-debugger" 标志。
这个 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
}
更多信息here。
我是 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) 使用上述设置启动应用程序后,我无法停止该服务。即,即使在停止调试器之后,该应用程序似乎也是 运行。我可以看到正在通过终端输出和 Postman 处理请求。在关闭 VS Code 之前,该进程似乎还活着。
有人能解释一下吗?
似乎打开了自动重新加载(通过删除“--no-reload”标志),使得 VS 代码调试器不再工作。 VS 代码人员说他们正在研究它:https://github.com/Microsoft/vscode-python/issues/4355.
因此,目前,您应该在 launch.json args 部分添加 "no-reload" 和 "no-debugger" 标志。
这个 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
}
更多信息here。