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好的,谢谢你的帮助