我有两个文件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'
)
Run Code Online (Sandbox Code Playgroud)
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')
Run Code Online (Sandbox Code Playgroud)
并且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
Run Code Online (Sandbox Code Playgroud)
如果我删除from app import app,代码将工作,但我如何访问app.config?
hiv*_*ert 44
问题是你有一个循环导入:在app.py中
from mod_login import mod_login
Run Code Online (Sandbox Code Playgroud)
在mod_login.py中
from app import app
Run Code Online (Sandbox Code Playgroud)
这在Python中是不允许的.有关详细信息,请参阅Python中的循环导入依赖项 简而言之,解决方案是
mjp*_*mjp 15
如果您一直在处理脚本和函数并且一直在移动它们(即更改了定义的位置),这可能会意外地创建循环引用,也会发生这种情况.
如果您只是重置iPython核心以清除任何旧任务,您可能会发现情况已解决:
%reset
Run Code Online (Sandbox Code Playgroud)
或者菜单 - >重启终端
您可以导入整个模块而不是特定对象,而不是使用本地导入。然后,在您的app模块中,调用mod_login.mod_login
应用程序
from flask import Flask
import mod_login
# ...
do_stuff_with(mod_login.mod_login)
Run Code Online (Sandbox Code Playgroud)
mod_login.py
from app import app
mod_login = something
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
151676 次 |
| 最近记录: |