我有两个文件 app.py
和 mod_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
?
最佳答案
问题是你有一个循环导入: 在 app.py 中
from mod_login import mod_login
在 mod_login.py 中
from app import app
这在 Python 中是不允许的。见 Circular import dependency in Python了解更多信息。总之,解决办法是
- 要么将所有内容收集到一个大文件中
- 使用本地导入延迟其中一项导入
关于python - 导入错误 : cannot import name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17845366/