Python 烧瓶配置类
我正在尝试为我的项目设置配置类,但我似乎不知道如何正确导入它们 项目结构:Python 烧瓶配置类,python,flask,import,configuration,importerror,Python,Flask,Import,Configuration,Importerror,我正在尝试为我的项目设置配置类,但我似乎不知道如何正确导入它们 项目结构: -project -instance -config.py -service -__init__.py config.py: class DefaultConfig(object): DEBUG = True class ProductionConfig(DefaultConfig): DEBUG = False init.py: from flask import Flas
-project
-instance
-config.py
-service
-__init__.py
config.py:
class DefaultConfig(object):
DEBUG = True
class ProductionConfig(DefaultConfig):
DEBUG = False
init.py:
from flask import Flask
def create_app():
app = Flask(__name__, instance_relative_config=True)
app.config.from_object('config.ProductionConfig')
return app
要运行应用程序,我执行了以下操作:
set FLASK_APP=service
set FLASK_ENV=production
FLASK run
站在项目
文件夹中时
这给了我一个错误:
ImportStringError: import_string() failed for 'config'. Possible reasons are:
- missing __init__.py in a package;
- package or module path not included in sys.path;
- duplicated package or module name taking precedence in sys.path;
- missing module, class, function or variable;
Debugged import:
- 'config' not found.
Original exception:
ModuleNotFoundError: No module named 'config'
我猜这条路不对。
我举了一个例子,其中他们讨论了对配置和实例文件夹使用继承。当我读到它的时候,它是很有意义的,但我一定是设法遗漏了一个不可分割的部分
编辑:现在可以了。而不仅仅是
app.config.from_object('config.DefaultConfig')
我不得不这么做
app.config.from_object('instance.config.DefaultConfig')
我认为这确实令人困惑,因为将
instance\u relative\u config
设置为True就像我做的那样,应该根据文档设置配置文件相对于实例目录的路径。现在我正在相对于项目根访问它们 仔细阅读本节@taras是的,我读过了。我聪明了一点,找到了解决办法。如果我将实例添加到路径中,它就会工作。因此,我访问的是相对于根文件夹的配置文件。我很困惑为什么需要这样做,因为我正在将标志instance\u relative\u config
设置为True
。我不是100%确定它是如何工作的,但它看起来只有from\u pyfile
方法对instance\u relative\u config
起作用。在的底部有一个通过app.instance\u path
访问配置的示例,但是这个方法在访问类方面对我来说有点特别。@taras好的,谢谢你的帮助