我一直试图让调试器在VS代码中工作,这样我就可以调试我的Flask应用程序了。我在launch.json中尝试了太多的选项,以至于我觉得已经没有任何选择了。
以下示例不起作用:https://github.com/DonJayamanne/pythonVSCode/wiki/Debugging:-Flask
Debug Flask(Python) web application in Visual studio code
下面是我的launch.json和setting.json。我在启动文件中有两个配置,因为我尝试了多个变体。
launch.json
"version": "0.2.0",
"configurations": [
{
"name": "Flask",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"pythonPath": "${config:python.pythonPath}",
//"module": "flask.cli",
"program": "${workspaceRoot}/startup.py",
"cwd": "${workspaceRoot}",
"env": {
"FLASK_APP": "${workspaceRoot}/apt-flask.py",
},
"args": [
"run",
"--no-debugger",
"--no-reload"
],
"envFile": "${workspaceRoot}/.env",
"debugOptions": [
"WaitOnAbnormalExit",
"WaitOnNormalExit",
"RedirectOutput"
]
},
{
"name": "Python: APT FLask",
"type": "python",
"request": "launch",
"stopOnEntry": true,
"pythonPath": "${workspaceFolder}/venv/Scripts/python.exe",
//"program": "${workspaceFolder}/venv/Scripts/flask.exe",
"module": "flask.cli",
"cwd": "${workspaceFolder}",
"env": {
"FLASK_APP": "${workspaceFolder}/apt-flask.py",
"DEBUG": 1,
"LC_ALL": "en_US.utf-8",
"LANG": "en_US.utf-8"
},
"args": [
"run",
"--no-debugger",
"--no-reload"
],
"envFile": "${workspaceFolder}/.env",
"debugOptions": [
"WaitOnAbnormalExit",
"WaitOnNormalExit",
"RedirectOutput"
]
}
]settings.json
{
"python.pythonPath": "${workspaceRoot}/venv/Scripts/python.exe"
}就错误而言,控制台中没有错误,只有编辑器中的错误,它告诉我"Debug适配器进程意外终止“。
我不知道还能尝试什么。我目前使用Pycharm,但是我正在寻找一个更轻量级的编辑器,而且由于我在其他方面使用VS代码,所以更改它是有意义的,所以最好能最终实现这个功能。
任何帮助都是很棒的。
发布于 2019-11-12 22:19:24
截至2019年11月I发现下列有用之处:
新路(基本与松散)-下面的“旧路”更好
假设有一个简单的app.py,例如:
import flask
app = flask.Flask(__name__)
@app.route('/')
def index():
return "Hello world!"通过从Debug中添加Python配置,将..vscode/unch.json添加到项目中。
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Flask",
"type": "python",
"request": "launch",
"module": "flask",
"env": {
"FLASK_APP": "app.py",
"FLASK_ENV": "development",
"FLASK_DEBUG": "1"
},
"args": [
"run",
"--no-debugger",
"--no-reload"
],
"jinja": true
}
]
}Flask应用程序有效地运行了VS代码调试器F5中的“新方法”。
python -m flask run旧方式(更好)
Miguel建议,在VS代码调试器中,用旧的方式运行应用程序,再加上额外的标志,会更好。
将以下内容添加到app.py中(从上面):
if __name__ == '__main__':
app.run(use_debugger=False, use_reloader=False, passthrough_errors=True)修改..vscode/unch.json如下所示:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Flask",
"type": "python",
"request": "launch",
"module": "app",
"env": {
"FLASK_APP": "app.py",
"FLASK_ENV": "development",
"FLASK_DEBUG": "1"
},
"args": [
// "run",
// "--no-debugger",
// "--no-reload"
],
"jinja": true
}
]
}因此,Flask应用程序有效地运行了VS代码调试器F5中的“旧方式”。
python app.pyhttps://stackoverflow.com/questions/49171144
复制相似问题