33

2つのファイルが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か?

4

5 に答える 5

28

これは、スクリプトや関数で作業していて、それらを移動している (つまり、定義の場所を変更した) 場合にも発生する可能性があり、誤ってループ参照が作成された可能性があります。

iPython カーネルをリセットして古い割り当てをクリアすると、状況が解決されることがあります。

%reset

またはメニュー - >端末を再起動

于 2016-04-12T23:10:59.497 に答える
5

ローカル インポートを使用する代わりに、特定のオブジェクトではなくモジュール全体をインポートできます。次に、appモジュールで呼び出しますmod_login.mod_login

app.py

from flask import Flask
import mod_login

# ...

do_stuff_with(mod_login.mod_login)

mod_login.py

from app import app

mod_login = something
于 2016-04-19T13:52:19.937 に答える