簡體   English   中英

嘗試從父模塊導入變量會中斷其他導入

[英]Attempting to import a variable from parent module breaks other imports

我知道這個問題可能會一遍又一遍地問,並且在理解import如何與Python結合使用方面已經走了很長一段路。 在詢問之前,我做了我想盡一切可能的嘗試,但是我完全迷失了執行簡單的import感覺。

我需要訪問子模塊(user.py)中的app變量,以專門使用app.config 我的結構如下:

src
 | - __init__.py
 | - app.py
 | - models
   | - __init__.py
   | - user.py

我的app.py文件如下所示:

from flask import Flask, make_response, abort, jsonify, g
from flask_restful import Api
from flask_login import LoginManager, current_user

from models import db
from apis.v1.tasks import TaskAPI, TaskListAPI
from apis.v1.users import UserAPI, UserListAPI
from apis.v1 import auth

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = "mysql+pymysql://root:root@localhost/database"
app.config['SECRET_KEY'] = "loremIpsumDolorSitAmet"

# More code n stuff

我想動手使用app以便可以在我的models/user.py模塊中引用app.config['SECRET_KEY']

所以我嘗試了一切 (從models/user.py )。

from src import app
from src.app import app
from .. import app

大多數情況下,我會收到類似於ImportError: No module named src.app ,但是有時我會收到類似ImportError: cannot import name User坦率地使我感到困惑的ImportError: cannot import name User ,因為這幾乎就像導入成功但引起某種后果循環?

我真的希望這份導入指南能夠為我提供所需的信息,雖然它對我的孩子/兄弟姐妹導入以及對模塊/包裝/等的了解對我有很大幫助,但它並沒有幫助我最新一期。

任何幫助將不勝感激。

編輯:好的,所以我要解決這個問題是我創建了一個單獨的config/包,所以現在文件夾結構是,

src
 | - __init__.py
 | - app.py
 | - config
   | - __init__.py
 | - models
   | - __init__.py
   | - user.py

app.py我通過app.config.from_object('config')訪問它,在user.pyfrom config import SECRET_KEY調用。

您是否嘗試過僅import app

看來您應該使用藍圖以及應用程序工廠模式和藍圖 是這樣嗎

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM