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 库未使用的任何其他名称),它将起作用.
我正在完成有关 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 库未使用的任何其他名称),它将起作用.