Flask项目ImportError求助:无法从website导入create_app
解决ImportError: cannot import name 'create_app' from 'website'
核心问题:文件结构摆放错误
你目前把__init__.py、auth.py、views.py、models.py放在了templates子文件夹里,这不符合Python包的导入规则——__init__.py必须放在website主文件夹下,才能让Python将website识别为可导入的模块包。
1. 修正项目文件结构
改成标准的Flask项目结构:
项目根目录/ ├── main.py └── website/ ├── __init__.py # 移到该位置 ├── auth.py # 移到该位置 ├── views.py # 移到该位置 ├── models.py # 移到该位置 ├── static/ └── templates/
2. 确认__init__.py中的create_app定义
保证website/__init__.py里正确实现了create_app函数,示例代码如下:
from flask import Flask def create_app(): app = Flask(__name__) # 示例:注册蓝图(根据你的项目需求调整) from .views import views from .auth import auth app.register_blueprint(views, url_prefix='/') app.register_blueprint(auth, url_prefix='/') return app
3. 正确运行main.py
main.py的导入代码保持不变,但必须在项目根目录(即存放main.py和website文件夹的目录)下执行该文件,不要进入website文件夹内运行。
额外排查要点
- 检查
__init__.py中create_app的拼写是否正确,避免因笔误导致无法识别 - 确认你的Python环境中没有全局安装同名的
website包,防止命名冲突
内容的提问来源于stack exchange,提问作者Nikolas
相关产品推荐
相关产品推荐

