Python Flask NoAppException:在导入“微博”时,引发了一个导入错误:

Dav*_*len 2 python flask

__init__.py

from flask import Flask
app = Flask(__name__)
from app import routes
Run Code Online (Sandbox Code Playgroud)

microblog.py, set FLASK_APP=microblog.py

from app import app
Run Code Online (Sandbox Code Playgroud)

app.py

from flask import Flask
app = Flask(__name__)
from app import routes
Run Code Online (Sandbox Code Playgroud)

routes.py

from app import app

@app.route('/')
@app.route('/index')
def index():
    return "Hello, World!"
Run Code Online (Sandbox Code Playgroud)

run.py

#!flask/bin/python
from app import app
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

当我这样做时flask run

flask.cli.NoAppException
NoAppException: While importing "microblog", an ImportError was raised:

Traceback (most recent call last):
  File "c:\python27\lib\site-packages\flask\cli.py", line 235, in locate_app
    __import__(module_name)
  File "C:\Users\ACER\FlaskTEST\venv\app\MicroBlog\microblog.py", line 1, in <module>
    from app import app
  File "C:\Users\ACER\FlaskTEST\venv\app\MicroBlog\app\__init__.py", line 5, in <module>
    from app import routes
  File "C:\Users\ACER\FlaskTEST\venv\app\MicroBlog\app\app.py", line 4, in <module>
    from app import routes
ImportError: cannot import name routes
Run Code Online (Sandbox Code Playgroud)

mat*_*788 5

根据 python 模块名称,我假设您正在研究Miguel Grindberg 创建的Flask Mega-Tutorial

Mega-Tutorial的目录结构如下:

Current_Working_Directory:

  • microblog.py
  • 一个名为的文件夹/目录 app

Current_Working_Directory/应用程序:

  • __init__.py
  • routes.py

请注意这里的 Python 模块和 Miguel 模块之间的两个区别:

  1. 您有一个名为的重复文件run.py,其执行的操作与他的microblog.py. 要修复,您可以保留run.py,将其放在当前工作目录中,set FLASK_APP=run.py或者您可以在调用时删除run.py和使用它将运行您设置为.microblog.pyflask runFLASK_APP

  2. 您有一个不必要的名为 的python 模块app.py,删除它,您应该很高兴。

请记住,您可以随时查看Miguel 的微博 GitHub,以在每章末尾仔细检查您的代码是否与他的匹配。