Flask: невозможно импортировать из __init__.py верхнего приложения - PullRequest
0 голосов
/ 28 сентября 2019

Вот моя текущая структура папок

.
├── api
│   ├── api_routes.py
│   └── sql
│       └── models.py  # import db into this file
├── application
│   └── __init__.py    # db here
└── wsgi.py

В __init__.py есть переменная db (экземпляр Flask-SQLAlchemy) и функция create_app, все из которых успешно импортированы в wsgi.pyиспользуя эту строку:

from application import create_app

Я использовал эту же строку для импорта db в models.py, но безрезультатно.Что я могу сделать сейчас?Я понятия не имею, с чего начать.В одном посте SO говорится, что, возможно, речь идет о циклическом импорте, однако я не могу найти его в своем коде.Я также попытался импортировать с этими строками без успеха:

from . import create_app
from .application import create_app
from ..application import create_app

1 Ответ

0 голосов
/ 28 сентября 2019

Существует несколько хитростей для обработки такого импорта,

1) Пометьте папку «application» как «Корень источников», и тогда я думаю, что она должна работать (пометить папку как источник root относительно легко, когдаиспользуя pycharm, поэтому я предлагаю вам использовать pycharm для этого и для многих других приемов с использованием Python)

2), чтобы добавить путь к каталогу, из которого вы хотите импортировать файл в sys.path, сделать что-токак

import sys
sys.path = ['/path/to/your/folder'] + sys.path
...
other code

, и тогда импорт должен работать.

Надеюсь, это поможет (:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...