我知道这个问题可能一遍又一遍地被问到,而且我在理解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
,以便我可以在app.config['SECRET_KEY']
模块中引用models/user.py
。
所以我尝试了所有内容(来自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
这样的错误,坦白地说我很困惑,因为它几乎就像导入成功但导致某种环?
我真的希望this guide to imports会给我提供我需要的信息,虽然它帮助了我很多孩子/兄弟进口以及理解模块/包/等...,但它不是'帮我解决这个最新的问题。
非常感谢任何帮助。
编辑:好的,所以我要解决的问题是我创建了一个单独的config/
包,所以现在文件夹结构是,
src
| - __init__.py
| - app.py
| - config
| - __init__.py
| - models
| - __init__.py
| - user.py
在app.py
我正在通过app.config.from_object('config')
和user.py
我正在通过from config import SECRET_KEY
访问它。