发布于2026-07-11 阅读(0)
扫一扫,手机访问
Flask在VS Code里跑不起来,八成不是代码问题,而是环境没对上。FLASK_APP找不到入口、解释器选错、venv没激活、launch.json用program硬启绕过了Flask CLI——这些才是真卡点。

VS Code默认不把项目根目录加进Python路径,flask run执行时根本找不到app.py。必须靠双保险:.env文件加envFile配置。
在项目根目录新建.env,内容写死:FLASK_APP=app.py(文件名按你实际改),FLASK_DEBUG=1(FLASK_ENV已弃用)。launch.json里必须用"module": "flask",不能写"program": "app.py"——后者跳过CLI,热重载、flask shell全失效。"args"至少带["run", "--host=127.0.0.1:5000"],避免绑定localhost后被系统防火墙拦截。确认"envFile": "${workspaceFolder}/.env"已配置,VS Code的Debug不读终端export。
ModuleNotFoundError: No module named 'flask'VS Code的Python解释器下拉列表里,可能混着系统Python、pyenv、conda多个环境,而flask只装在某个venv里。关键动作不是“选”,是“验证”。
按Ctrl+Shift+P → 输入Python: Select Interpreter,从路径含venv、env或pyenv的选项里挑。底部状态栏点解释器路径,新开终端,直接跑:python -c "import flask; print(flask.__version__)"。如果报错,说明没装对环境——别信列表名字,认路径、跑命令、看输出。Windows用户注意:venv\Scripts\python.exe和venv\Scripts\activate.bat是两回事,调试用前者,终端激活用后者。
launch.json里--no-reload和--no-debugger到底要不要加加不加取决于你当前要干啥。调试时必须关重载,否则断点进不去;开发时想热更新就得留着,但得接受VS Code偶尔跟丢进程。
调试阶段:"args": ["run", "--no-reload", "--no-debugger"]——--no-debugger禁用Werkzeug内建调试器,避免和VS Code冲突;--no-reload防止fork子进程导致断点失效。开发阶段:去掉--no-reload,但"subProcess": true加在launch.json顶层(仅Linux/macOS较稳,Windows成功率低)。永远删掉app.py末尾的if __name__ == '__main__': app.run(...)——和launch.json启动方式互斥,留着必冲突。"justMyCode": true保持开启,避免误入Werkzeug源码;真要查框架逻辑时再临时关。
render_template报错这不是路径写错了,是项目结构没守Flask默认约定。它不看你文件夹叫什么,只认static和templates这两个硬编码名字。
static必须小写、无空格、直接放在项目根目录下,里面放css/、js/、images/子目录。templates同理,必须同级存在,Jinja2才自动从这里找index.html。如果用了工厂函数create_app(),launch.json里"args"得写成["--app", "app:create_app", "run"],app是模块名,create_app是函数名。requirements.txt别手写,用pip freeze > requirements.txt生成,尤其注意Werkzeug版本要和Flask匹配(如Flask==2.3.2配Werkzeug==2.3.7)。
最常被忽略的一点:所有配置都依赖vscode打开的是整个项目文件夹,不是单个app.py。用File → Open Folder,不是Open File——后者连.env和launch.json都压根不加载。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8