初始化烧瓶环境变量问题



我正在尝试使用Flask创建一个应用程序。我以前已经成功地做到了,但是,我不确定为什么这次不起作用。一切似乎都井然有序。我一直在寻找答案,然而,我仍然无法确定出了什么问题,因为在我看来一切都合乎逻辑?然而,它仍然出了问题?

ZXM934/
app/
__innit__.py
views.py
venv/
run.py

以下是每个文件的内容:

run.py
# Importing app object which was created in __innit__.py file into app.py
from app import app
if __name__ == "__main__":
app.run()
__innit__.py
# This class will ultimately bring our entire application together.
from flask import Flask
# Creating Flask app.
app = Flask(__name__)
# Importing views file to avoid circular import.
from app import views
view.py
# This class represents the UI of our website. 
# Importing app directory. As __innit__.py file is apart of this directory, 
# this import treats it as a package. 
from app import app
@app.route("/")
def public_home():
return "Homepage"
@app.route("/login")
def login():
return "<h1 style='color: red'>Login</h1>"

我在控制台中设置了如下环境变量:

export FLASK_APP=run.py
export FLASK_ENV=development

然后我运行以下命令:

flask run

出现以下错误:

flask.cli.NoAppException: While importing "run", an ImportError was raised:
Traceback (most recent call last):
File "/Users/zahidmalik-ramzan/Desktop/zxm934/venv/lib/python3.7/site-packages/flask/cli.py", line 240, in locate_app
__import__(module_name)
File "/Users/zahidmalik-ramzan/Desktop/zxm934/run.py", line 2, in <module>
from app import app
ImportError: cannot import name 'app' from 'app' (unknown location)

我不明白我做错了什么?

您的问题在于文件名__innit__.py

为了让python理解文件夹是项目结构中的实际包,您需要在其中有一个特殊的文件,即__init.py__ps:no double n

常规包通常实现为包含__init__.py文件的目录。当导入一个常规包时,这个__init__.py文件被隐式执行,它定义的对象被绑定到包的命名空间中的名称。

结论:将您的__innit.py__更改为__init.py__

最新更新