初始化烧瓶环境变量问题

时间:2020-07-07 16:04:55

标签: flask

我正在尝试使用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)

我不明白自己在做什么错?

1 个答案:

答案 0 :(得分:2)

您的问题出在文件名__innit__.py上。

要让python理解文件夹是项目结构中的实际包,您需要在其中包含一个特殊文件,即__init.py__ ps:不包含double n

常规软件包通常实现为包含__init__.py文件的目录。导入常规包后,此__init__.py文件将隐式执行,并且其定义的对象将绑定到包命名空间中的名称。

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