__init__.py
from flask import Flask
app = Flask(__name__)
from app import routes
microblog.py
, set FLASK_APP=microblog.py
from app import app
app.py
from flask import Flask
app = Flask(__name__)
from app import routes
routes.py
from app import app
@app.route('/')
@app.route('/index')
def index():
return "Hello, World!"
run.py
#!flask/bin/python
from app import app
app.run(debug=True)
当我执行 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
最佳答案
根据 python 模块名称,我假设您正在处理 Flask Mega-Tutorial由 Miguel Grindberg 创建。
Mega-Tutorial的目录结构如下:
当前工作目录:
microblog.py
- 一个名为
app
的文件夹/目录>
Current_Working_Directory/app:
__init__.py
routes.py
这里注意你的 python 模块和 Miguel 的两个区别:
您有一个名为
run.py
的重复文件,它与他的microblog.py
执行相同的操作。要修复,您可以保留run.py
,将其放在当前工作目录中,然后set FLASK_APP=run.py
或者您可以删除run.py
并在调用flask run
时使用microblog.py
,这将运行您设置为FLASK_APP
的内容。您有一个名为
app.py
的不必要的 python 模块,请删除它,然后您就可以开始了。
请记住,您始终可以查看 Miguel's Microblog GitHub在每章末仔细检查你的代码是否与他的代码匹配。
关于Python Flask NoAppException : While importing "microblog", 引发了 ImportError:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50691085/