Flask入门项目启动报错:无法从'app'导入'app'
解决Flask启动时的ImportError问题
嘿,别着急,我刚入门Flask的时候也踩过类似的坑!咱们一步一步来排查解决:
首先,检查你的文件结构是否正确
从你给出的文件路径来看,这里有个关键错误:你把__init__.py和routes.py放在了microblog根目录下(C:\Users\Grae_\microblog\),但按照你的操作步骤,这两个文件应该放在app子目录里(C:\Users\Grae_\microblog\app\)!
正确的文件结构应该是这样的:
microblog/ ├── app/ │ ├── __init__.py │ └── routes.py ├── venv/ └── microblog.py
如果文件位置错了,Python会把根目录下的__init__.py当成app模块来导入,自然找不到你在app子目录里定义的app对象,就会抛出ImportError。
其次,修正代码里的循环导入问题
即使文件位置对了,有时候也会因为循环导入触发这个错误。咱们调整一下app/__init__.py的代码顺序,确保app对象完全创建后再导入路由:
修改app/__init__.py为:
from flask import Flask # 先创建app对象 app = Flask(__name__) # 等app定义完成后再导入routes,避免循环导入 from app import routes
其他文件的代码保持你写的就可以:
app/routes.py:from app import app @app.route('/') @app.route('/index') def index(): return "Hello, World!"microblog.py:from app import app
最后,重新执行启动命令
进入虚拟环境后,按顺序执行:
set FLASK_APP=microblog.py flask run
这样应该就能正常启动Flask服务,看到Hello, World!了!
内容的提问来源于stack exchange,提问作者Peter Jordanson
相关产品推荐
相关产品推荐

