如何配置visual studio代码以调试Flask(Python)Web应用程序?
例如,当我在视图函数上设置调试器时,它应该允许我在浏览器中点击该路径时单步执行该函数。
我已经在Visual Studio代码中安装了python扩展。
答案 0 :(得分:6)
这是我对flask 0.12,Python 3.6和vs code 1.20
的配置// launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Flask",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"pythonPath": "${config:python.pythonPath}",
"program": "${workspaceRoot}/app.py",
"env": {
"FLASK_APP": "${workspaceRoot}/app.py"
},
"args": [
"run"
],
"envFile": "${workspaceFolder}/.env",
"debugOptions": [
"RedirectOutput"
]
}
]
}
# app.py file
app.run(port=5000)
# Don't use debug=True, because it disables VS CODE debugger
# app.run(port=5000, debug=True) - disables VS Code debugger
答案 1 :(得分:2)
我不使用VS进行python开发。但是,Flask有非常好的调试选项,允许您从浏览器进行调试。这不是VS的解决方案,而是一种解决方法。
定义应用程序时传递#### With spaces:
line = '<a href="foo"> foo </a>'
re.findall(r'>\s*(\w*)\s*<',line)
### ['foo']
#### No spaces:
line = '<a href="foo">foo</a>'
re.findall(r'>\s*(\w*)\s*<',line)
### ['foo']
参数以启用调试模式。然后,您可以从浏览器调试代码。
debug = true
可以找到更多信息here
答案 2 :(得分:2)
1)使用以下代码
在项目根目录中创建startup.py
# Needed to start debugger for flask app in Visual Studio Code IDE
import sys
import re
from flask.cli import main
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())
2)通过浏览到Debug选项卡(左窗格)然后单击设置图标(Gear图标),在Visual Studio Code中更新launch.json
文件。向下滚动到&#34; FLASK&#34;部分:
a)将"program"
值更改为"${workspaceRoot}/startup.py"
b)将"FLASK_APP"
值更改为"${workspaceRoot}/run.py"
(或者您的主要入口点文件为&#34;
3)转到文件 - &gt;首选项 - &gt;设置,然后点击右上角的工作区设置。插入以下字段"python.pythonPath": "${workspaceRoot}/venv/Scripts/python.exe"
(如果您的虚拟环境的名称不是venv
,则将其替换为适当的值
答案 3 :(得分:2)
我发现以下解决方案对我有用。我遵循了官方教程,对生成的 launch.json 文件进行了一些调整。
Visual Studio Code official flask tutorial debugging section
我的设置是:
我当前的 launch.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" // make sure it is not "0"
},
"args": [
"run",
// "--no-debugger", Comment out this line
// "--no-reload" Comment out this line
],
"jinja": true
}
]
}
默认情况下,生成的 launch.json 文件具有
行,这使我无法调试。
答案 4 :(得分:1)
我们可以使用Linux的第一个答案( Ubuntu )以及下面的修改。
在VSC中添加flask调试的配置。您将从添加按钮获得。它将如下所示。
{
"name": "Flask",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"pythonPath": "${config:python.pythonPath}",
"program": "${workspaceRoot}/app.py", #your start py file
"env": {
"FLASK_APP": "${workspaceRoot}/app.py" #your start py file
},
"args": [
"run"
//--no-debug and one more line removed.
],
"envFile": "${workspaceFolder}/.env",
"debugOptions": [
"RedirectOutput"
]
}
步骤2.转到文件 - &gt; 偏好设置 - &gt; 设置,然后点击工作区设置右上角的标签。插入以下字段"python.pythonPath": "${workspaceRoot}/venv/bin/python2.7",
(如果您的虚拟环境被命名为venv以外的其他内容,则将其替换为适当的值
答案 5 :(得分:0)
为了进一步扩展Guy先生的回答,我必须使用Anaconda 2在Windows环境中为visual studio代码配置调试器。我这样做是通过以下方式实现的:
{
"python.pythonPath": "C:\\ProgramData\\Anaconda2\\envs\\neuralnets\\python.exe"
}
神经网络是我的anaconda 2虚拟环境
答案 6 :(得分:0)
如果您使用的是venv,请确保您拥有virtual environment configured in VS Code。
用于常规调试功能,例如检查变量,设置 断点和其他与语言无关的活动, 查看VS Code debugging。
您的launch.json
文件应如下所示:
{
"version": "0.2.0",
"configurations": [
{
"name": "Flask",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"pythonPath": "${config:python.pythonPath}",
"module": "flask.cli",
"cwd": "${workspaceRoot}",
"env": {
"FLASK_APP": "sample",
"LC_ALL": "en_US.utf-8",
"LANG": "en_US.utf-8"
},
"args": [
"run",
"--no-debugger",
"--no-reload"
],
"envFile": "${workspaceRoot}/.env",
"debugOptions": [
"WaitOnAbnormalExit",
"WaitOnNormalExit",
"RedirectOutput"
]
}
]
}
将FLASK_APP
环境变量设置为您的应用文件的名称。
设置--no-debugger
以避免与Werkzeug调试器发生任何潜在冲突。
答案 7 :(得分:0)
Microsoft已添加该教程来创建用于Flask调试的启动配置:Flask Tutorial -> Run the app in the debugger
因此,不久您必须有一个类似于
{
"name": "Python: Flask",
"type": "python",
"request": "launch",
"module": "flask",
"env": {
"FLASK_APP": "app.py",
},
"args": [
"run",
"--no-debugger",
"--no-reload"
],
"jinja": true
},
在launch.json
中,其中app.py是Flask应用程序运行程序文件。之后,您必须在Visual Studio Code
的下拉菜单中选择适当的配置设置,例如:
之后,只需点击F5
并开始您的“旅程”即可!