VS Code调试Flask应用时出现server模块导入错误如何解决?
问题原因
VS Code 默认会从打开的工作区根目录(也就是BGSCS-API-dev文件夹)执行 Flask 启动命令,但你的server.py存放在工作区下的InterjectApi子目录中,Flask 按配置的server.py路径在根目录查找自然找不到对应文件。
可行解决方案
以下两种方案二选一即可:
方案1:指定调试工作目录
在launch.json中添加cwd参数,把调试运行的工作目录切换到server.py所在的InterjectApi文件夹,修改后的完整配置如下:
{ "version": "0.2.0", "configurations": [ { "name": "Python: Flask", "type": "python", "request": "launch", "module": "flask", "cwd": "${workspaceFolder}/InterjectApi", "env": { "FLASK_APP": "server.py", "FLASK_ENV": "development" }, "args": [ "run", "--no-debugger" ], "jinja": true } ] }
${workspaceFolder}是VS Code内置变量,自动指代当前打开的工作区根目录,配置后调试启动时会自动切换到对应子目录执行命令。
方案2:调整入口文件路径
不修改工作目录,直接把FLASK_APP的值改为从工作区根目录出发的相对路径,修改后的env配置片段如下:
"env": { "FLASK_APP": "InterjectApi/server.py", "FLASK_ENV": "development" }
直接告诉Flask入口文件的具体相对位置,不需要调整运行工作目录。
修改配置保存后重启调试会话即可正常启动应用。
内容的提问来源于stack exchange,提问作者Kipland
相关产品推荐
相关产品推荐

