Приложению Flask не удалось найти экземпляр config.py - PullRequest
0 голосов
/ 26 января 2019

- это иерархия каталогов моего приложения Flask, за которой следует текущий FlaskApp/app/__init__.py код:

Дерево каталогов FlaskApp:

/FlaskApp
│   config.py
│   run.py
├───app
│   │   db.py
│   │   forms.py
│   │   models.py
│   │   views.py
│   │   __init__.py
│   ├───static\
│   └───templates\
├───instance
│       config.py

__ init__.py:

from flask import Flask

app = Flask(__name__,
        instance_relative_config=True,
        )
app.config.from_object('config')
app.config.from_pyfile('config.py')

загрузка переменных конфигурации из папки экземпляра с помощью app.config.from_pyfile('config.py') приводит к следующей ошибке:

FileNotFoundError: [Errno 2] Невозможно загрузить файл конфигурации (нет такого файла или каталога): 'C: \ .. \ FlaskApp \ app \ instance \ config.py'

Мне пришлось поиграть с текущим путем, используя unipath , чтобы преодолеть эту проблему, добавив instance_path=Path(os.getcwd()).parent + "\instance" к var app.

Хотя это очень хорошо решило проблему, я считаю, что есть лучший / более чистый способ сделать это ( без изменения текущей иерархии каталогов ). Кто-нибудь может относиться к этому ??

Спасибо

1 Ответ

0 голосов
/ 26 января 2019

Вы можете попробовать использовать os.path.abspath(__file__), чтобы получить абсолютный путь к текущему файлу.

Затем присоединитесь к этому с '../instance'

my_instance_location = os.path.join(os.path.abspath(__file__),'../instance')
app = Flask(__name__,
    instance_path=my_instance_location,
    instance_relative_config=True,
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...