Python импорт из родительского каталога для структуры dockerize - PullRequest
2 голосов
/ 05 мая 2020

У меня проект с двумя приложениями. Оба они используют файл модели базы данных mon go -engine. Также они должны запускаться в разных контейнерах Docker, но использовать одну и ту же базу данных Mon go в контейнере fird. Теперь структура моего приложения выглядит так:

app_root/
   app1/
      database/
         models.py
      main.py
   app2/
      database/
         models.py
      main.py

И все работает нормально, НО мне нужно поддерживать два одинаковых файла database / models.py. Я не хочу этого делать и создаю следующую структуру:

app_root/
   shared/
      database/
         models.py
   app1/
      main.py
   app2/
      main.py

К сожалению, у меня это не работает, потому что, когда я пробую это в своем main.py:

from ..shared.database.models import *

I получаю

Exception has occurred: ImportError 
attempted relative import with no known parent package

И когда пытаюсь

from app_root.shared.database.models import *

получаю

Exception has occurred: ModuleNotFoundError No module named 'app_root'

Пожалуйста, а что я делаю не так?

1 Ответ

1 голос
/ 05 мая 2020

В файл, который вы выполняете, попробуйте добавить это:

import os
import sys
sys.path.append(os.path.abspath('../../..'))

from app_root.shared.database.models import *
...