Python 如何修复烧瓶蓝图错误-未找到模块

Python 如何修复烧瓶蓝图错误-未找到模块,python,flask,Python,Flask,我看过帮助指南等等,但我似乎仍然无法让烧瓶蓝图工作 这是我的结构 root / config.py |app/ | __init__.py | user_auth/ | __init__.py | app.py | routes.py 在app/init.py文件中,如下所示 from flask import Flask from config import Conf

我看过帮助指南等等,但我似乎仍然无法让烧瓶蓝图工作

这是我的结构

root /
config.py
   |app/
        | __init__.py
        | user_auth/

              | __init__.py
              | app.py
              | routes.py

在app/init.py文件中,如下所示

from flask import Flask
from config import Config


app = Flask(__name__)
app.config.from_object(Config)

from .user_auth.routes import user_auth


app.register_blueprint(user_auth, url_prefix="")
从用户_authinit.py文件

from flask import Flask
from config import Config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from flask_login import LoginManager

app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
migrate = Migrate(app, db)
login = LoginManager(app)
login.login_view = 'login'

app.config['SECRET_KEY'] = 'trial'

from user_auth import routes, models
这是user\u auth/routes.py文件

from user_auth import app, db
from flask_login import login_required
from user_auth.forms import RegistrationForm, LoginForm
from flask import request, render_template, flash, redirect, url_for, Blueprint
from werkzeug.urls import url_parse
from flask_login import logout_user

from flask_login import current_user, login_user
from user_auth.models import User


from flask import Blueprint
user_auth = Blueprint('user_auth', __name__)

@app.route('/')
@app.route('/index')
def index():
    return render_template('index.html', title='Welcome')


@app.route('/register', methods=["POST", "GET"])
def register():

... (Other paths)
我正在运行Windows并使用以下命令

set FLASK_APP=app
然后我使用

flask run
当我尝试运行时,它会显示以下内容:

Error: While importing "app", an ImportError was raised:

Traceback (most recent call last):
  File "...\python38-32\lib\site-packages\flask\cli.py", line 240, in locate_app
    __import__(module_name)
  File "...\root\app\__init__.py", line 8, in <module>
    from .user_auth.routes import user_auth
  File "...\root\app\user_auth\__init__.py", line 16, in <module>
    from user_auth import routes, models
ModuleNotFoundError: No module named 'user_auth'
错误:导入“应用程序”时,引发了导入错误:
回溯(最近一次呼叫最后一次):
文件“…\python38-32\lib\site packages\flask\cli.py”,第240行,在locate\u应用程序中
__导入(模块名称)
文件“…\root\app\\uuuuu init\uuuuuu.py”,第8行,在
from.user\u auth.routes导入用户\u auth
文件“…\root\app\user\u auth\\uuuuu init\uuuuuuuuuuuu.py”,第16行,在
从用户_auth导入路由、模型
ModuleNotFoundError:没有名为“user\u auth”的模块

提前感谢您的帮助。

对于
app/user\u auth/
中的所有文件,如您在上面提到的
init.py
routes.py
,您需要使用

  • 绝对导入:
    来自root.app.user\u auth
  • 相对导入:
    from..user\u auth
然后,我建议不要使用相同的名称,因为这里的
user\u auth
既是一个包名,也是blueprint的变量名

变化无常

 # routes.py
user_auth_bp = Blueprint('user_auth', __name__)

# app/__init__.py
from .user_auth.routes import user_auth_bp
app.register_blueprint(user_auth_bp, url_prefix="")

为什么定义了两个不同的烧瓶应用程序?一个在app/init.py中,一个在app/user\u auth/init.py中,另一个在ont中,谢谢!这有帮助,但我还有另一个问题。问题链接到这里: