VSCode调试Flask必须配置launch.json使用"module": "flask"并指定envFile为"${workspaceFolder}/.env",显式设置args如["run","--host=127.0.0.1:5000"],正确选择Python解释器且项目需以Open Folder方式打开。

VSCode 能运行 Flask,但默认点「运行」或「F5 调试」大概率失败——不是 Flask 有问题,而是 VSCode 没走官方启动流程,环境变量、解释器、模块路径全没对上。
launch.json 必须用 module 而不是 program
直接设 "program": "app.py" 是让 Python 解释器执行脚本,绕过了 Flask CLI;"module": "flask" 才等价于终端里跑 python -m flask run,热重载、flask shell、上下文感知(比如 url_for())才正常。
-
"module": "flask"是强制开关,缺了它,断点进不了路由函数,Working outside of application context错误几乎必现 -
"args"至少得含["run", "--host=127.0.0.1:5000"]:显式绑定地址端口,避免 Windows 防火墙拦截默认的localhost:5000 - 加
--no-debugger是防止和 VSCode 自身调试器冲突,否则会卡在 debugger 启动阶段
.env 文件必须存在且路径写死
VSCode 的调试器不读终端里的 export FLASK_APP=app.py,只认 envFile 指定的文件。这个文件必须放在项目根目录(即 app.py 所在目录),编码为 UTF-8 无 BOM。
-
envFile值必须是"${workspaceFolder}/.env",不能写成".env"或绝对路径 -
.env内容示例(注意换行,且FLASK_ENV已弃用):FLASK_APP=app.py<br>FLASK_DEBUG=1
- 如果入口是
src/app.py,FLASK_APP得写成src.app,且确保项目根目录在 Python 模块搜索路径里(即用Open Folder打开整个文件夹,不是单个文件)
Python 解释器选错会导致 ImportError: No module named 'flask'
VSCode 底部状态栏显示的 Python 路径,必须指向你 pip install flask 的那个环境。常见陷阱是:选了解释器路径,但终端没激活虚拟环境,导致 pip list 看不到 flask。
- 按
Ctrl+Shift+P→ 输入Python: Select Interpreter,从列表里挑带venv、.venv或pyenv字样的路径 - 选完后,新开集成终端,运行
python -c "import flask; print(flask.__version__)"验证是否能 import - 用 Poetry 的话,别选
poetry可执行文件,要选poetry env info --path返回路径下的python(通常在.venv/bin/python)
终端里看不到 (venv) 前缀说明环境根本没激活
VSCode 新建终端不会自动继承你在设置里选的解释器,也不会自动激活虚拟环境。这是新手卡住的第一步。
- Windows:执行
.\venv\Scripts\activate - macOS/Linux:执行
source venv/bin/activate - 执行后提示符开头出现
(venv),此时pip list才能看到 flask - 如果已用
Python: Select Interpreter选了 venv 路径,但终端仍无前缀,重开终端即可(不是重启 VSCode)
最容易被忽略的是:项目必须用 Open Folder 打开整个目录,而不是双击 app.py;.env 文件必须 UTF-8 无 BOM;FLASK_APP 的值必须严格匹配文件名和模块路径——少一个点、多一个 .py、大小写不对,都会报 Could not locate a Flask application。











