VS 代码中的烧瓶:没有名为 website.__main__ 的模块; 'website'是一个包,不能直接执行



我有一个非常基本的烧瓶网站,如下文件website.py所示。一切正常,除非我设置了debug=True,然后在visualstudio中设置了断点,否则我会得到上面的错误。

from flask import Flask, render_template, request, redirect, url_for, flash
app = Flask(__name__)
@app.route('/')
def home():
return 'hi'

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

您需要为您的flask python文件创建一个调试配置:

在launch.json文件中单击Add Configuration->选择Python->选择Flask

记住将app.py重命名为website.py

或者您可以直接将其复制到launch.json文件中,并选择它作为调试的配置:

{
"name": "Python: Flask",
"type": "python",
"request": "launch",
"module": "flask",
"env": { "FLASK_APP": "website.py", "FLASK_ENV": "development" },
"args": ["run", "--no-debugger"],
"jinja": true
},

您可以查看官方文档以了解更多详细信息。

Flask建议使用flask run命令运行应用程序。请参阅Flask 2.0.x的Flask网站上的快速启动文档。要使用调试模式运行应用程序,请将FLASK_ENV环境变量设置为development

website.py:

from flask import Flask, render_template, request, redirect, url_for, flash
app = Flask(__name__)
@app.route('/')
def home():
return 'hi'

如果您正在使用Linux/Mac:

export FLASK_APP=website
export FLASK_ENV=development
flask run

如果您正在使用Windows:

set FLASK_APP=website
set FLASK_ENV=development
flask run

Flask 2.3以后版本的更新

FLASK_ENV=development从Flask 2.3开始被弃用。在flask run命令中使用FLASK_DEBUG=1--debug标志:flask run --debug

参考文献:

  • Flask 2.0.x Flask网站上的快速入门文档

最新更新