You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode运行Flask项目提示“No module named demo”问题求助

解决VSCode中运行Flask应用出现"No module named demo"的问题

问题原因分析

当VSCode以大型仓库的根目录作为工作区运行代码时,Python的模块搜索路径默认不包含demo.py所在的子目录。而Flask开启debug=True时会自动重启应用,重启过程中Python会尝试以模块方式导入demo,此时就会因为路径问题找不到该模块。但在命令行进入文件目录运行时,当前目录会被自动加入Python的模块搜索路径,所以能正常执行。


具体解决步骤

1. 修正Flask初始化的小问题(可选但推荐)

你的代码中Flask应用初始化存在冗余引号,这虽不是报错的直接原因,但会影响应用名称的正确识别,建议修改:

from flask import Flask

# 去掉__name__两侧的引号,直接使用内置变量
app = Flask(__name__)

@app.route("/")
def index():
    return "random, World!"

if __name__ == "__main__":
    app.run(debug=True)

2. 强制VSCode运行时使用文件所在目录作为工作区

  • 打开VSCode的「运行和调试」面板(快捷键Ctrl+Shift+D)
  • 若未配置过launch.json,点击「创建launch.json文件」并选择Python环境
  • 在生成的launch.json中,给调试配置添加"cwd": "${fileDirname}",确保运行时工作目录与demo.py所在目录一致:
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: 当前文件",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "cwd": "${fileDirname}"  // 新增该行
        }
    ]
}

3. 统一VSCode与命令行的Python解释器

  • 点击VSCode右下角显示的Python版本号,选择你命令行使用的Python 3.10.5版本
  • 在VSCode终端执行python --version,确认版本与命令行输出一致

4. 手动添加模块搜索路径(若上述方法无效)

如果demo.py位于仓库深层子目录,可在launch.json中配置PYTHONPATH,将文件所在目录加入模块搜索路径:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: 当前文件",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "env": {
                // 替换成demo.py所在的相对路径(相对于仓库根目录)
                "PYTHONPATH": "${workspaceFolder}/your/subdirectory/path;${env:PYTHONPATH}"
            }
        }
    ]
}

内容的提问来源于stack exchange,提问作者RHO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 23:15:09