Как организовать пакет / модули в python - PullRequest
0 голосов
/ 05 августа 2020

Моя жизнь с python только началась. Я не знаю, как организовать папки в python (flask)

Я намерен организовать свое приложение в следующей структуре каталогов / файлов

sr c введите описание изображения здесь

server.py - основной файл

database.py содержащий общие ресурсы, связанные с БД

customer.py - это простой python класс, которому нужен экземпляр БД из database.py

from ....shared.database import DB # How to solve this

class Customer():
    def __init__(self):
        self._first_name="John"

, но я получаю сообщение об ошибке Attempted relative import beyond top-level package

Как мне заставить это работать?!.

представление структуры папки

src
  app
    /modules
         /customers
              /models
                 customer.py
    /shared
       /database.py
  /server.py

Ответы [ 2 ]

1 голос
/ 05 августа 2020

Ваши каталоги должны содержать файл __init__.py, чтобы их можно было распознать как пакеты и, таким образом, работать с импортом. Файл может быть пустым.

Подробнее о __init__.py здесь: Для чего нужен __init__.py?

0 голосов
/ 05 августа 2020

Чтобы объявить вашу папку как пакет, вы должны добавить пустые init .py файлы в каждую папку, которая содержит любой код, который вы хотите вызвать из других подпапок.

И если вы все еще не в состоянии сделать это, посмотрите другую альтернативу.

Вы можете попробовать сделать это как быстрый способ доступа к другим исходным кодам из других подпапок в том же модуле: добавьте это перед выполнением импорта, если имя == ' main ': import os import sys sys.path.append (os.getcwd ()) из app.shared.database import DB

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