долгое время слушатель, впервые звонящий.
Я пытался понять это сам, и я немного застрял, есть множество примеров и объяснений, большинство из которых, кажется, просто двигаются пакет включает все модули, но я думаю, что dockerizing немного усложняет, или, может быть, я?
Мой проект состоит из нескольких компонентов Python / Flask, Docker (docker -compose ), Мариадб. Я строю flask admin и flask api поверх источника данных Mariadb. Изначально у меня был docker -композитный запуск flask, обслуживающий API и Admin в одном пакете. Затем мне пришла в голову блестящая идея разделения двух сервисов, и в процессе я хотел уменьшить дублирование скриптов, таких как мои модели и некоторую общую конфигурацию.
project
- api
--_init_.py
--...
- admin
--_init_.py
--...
- models
--_init_.py
--roles.py
--users.py
--...
- config
--_init_.py
--development.py
--...
Dockerfile-api
Dockerfile-admin
docker-compose.yml
requirements-api.txt
requirements.admin.txt
Теперь, конечно, когда я пытаюсь получить доступ Модели от администратора. init .py Я получаю ValueError: attempted relative import beyond top-level package
Из чтения я пришел к выводу, что мне может понадобиться что-то сделать с pip, чтобы импортировать модели модулей в то время requirements
читаются, но потребуется docker -компоновать для обновления контейнеров при каждой модификации моделей.
Теперь вопрос, любые идеи, оценены. Я на правильном пути, и кто-нибудь может поделиться примером, которому я могу следовать?
Admin и API init .py go что-то вроде этого
import os
# Import installed packages
from flask import Flask, Blueprint
from flask_bcrypt import Bcrypt
#from flask_cors import CORS
from flask_migrate import Migrate
#from flask_restx import Api, Resource, fields
from flask_security import Security, SQLAlchemyUserDatastore
# Import app code
from admin.core.admin import configure_admin
from admin.core.db import db
import admin.core.models # Probably needed for flask-migrate
# Import models
from .. import models
#from ..models import Role, User # Security models
# Initialise extensions
bcrypt = Bcrypt()
migrate = Migrate()
def create_app():
app = Flask(__name__,instance_relative_config=True)
Cheers за помощь.