Python Flask Blueprints - ImportError: cannot import name app

Python Flask Blueprints - ImportError: cannot import name app

我正在完成有关 Flask 蓝图的教程,第一步是下载 Flask 并打印初始 "Hello World"。但是,当我尝试 运行 初始 run.py 文件时,出现以下错误:

Traceback (most recent call last):
File "run.py", line 1, in <module>
    from site import app
ImportError: cannot import name 'app' from 'site' (/Users/kyle/anaconda3/lib/python3.7/site.py)

我的文件结构是:

website/
     run.py
     site/
        __init__.py

run.py

from site import app

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

__init__.py

from flask import Flask

app = Flask(__name__)


@app.route('/')
def root():
    return "Hello World"

我很困惑为什么会收到此错误,因为根据我的理解,如果在 init 文件中声明了应用程序,我应该能够导入它。

这是因为 site 是 Python 标准库 (https://docs.python.org/3/library/site.html) 中的一个模块。您的模块名称与之冲突,解释器首先从库中加载,因此找不到 app 变量。有几种方法可以解决这个问题,但我怀疑您不是很喜欢这个名字,所以我只是更改它。如果您将 site 文件夹重命名为 web(或 Python std 库未使用的任何其他名称),它将起作用.