一尘不染

ImportError:无法导入名称

flask

我有两个文件app.pymod_login.py

app.py

from flask import Flask
from mod_login import mod_login

app = Flask(__name__)
app.config.update(
    USERNAME='admin',
    PASSWORD='default'
)

mod_login.py

# coding: utf8

from flask import Blueprint, render_template, redirect, session, url_for, request
from functools import wraps
from app import app

mod_login = Blueprint('mod_login', __name__, template_folder='templates')

而python返回此错误:

Traceback (most recent call last):
  File "app.py", line 2, in <module>
    from mod_login import mod_login
  File "mod_login.py", line 5, in <module>
    from app import app
  File "app.py", line 2, in <module>
    from mod_login import mod_login
ImportError: cannot import name mod_login

如果删除from app import app,代码将起作用,但是如何访问app.config


阅读 493

收藏
2020-04-06

共1个答案

一尘不染

问题是你有一个循环导入:在app.py中

from mod_login import mod_login

在mod_login.py中

from app import app

这在Python中是不允许的。有关更多信息,请参见Python中的循环导入依赖项。简而言之,解决方案是

要么将所有内容收集到一个大文件中
使用本地导入延迟导入之一

2020-04-06