Вопрос о приложении Python и docker / AWS design

#python #docker #import

#python #docker #импорт

Вопрос:

У меня есть приложение на Python, которое считывает / записывает данные в базу данных MySQL. Раньше у меня был один файл python, и он содержал сведения о подключении к БД. Тем не менее, я пытаюсь абстрагировать его и импортировать в несколько модулей. Например, моя структура каталогов выглядит следующим образом:

 basedir
    utils
        dbutils.py
    module1
        __init__.py
        src
            code.py
            __init__.py
        requirements.txt
        Dockerfile
    module2
        __init__.py
        src
            code.py
            __init__.py
        requirements.txt
        Dockerfile
  

Для импорта кода из dbutils.py в code.py в module1 и module2 таким образом, чтобы он работал как локально, так и при создании образов docker. Каков был бы правильный путь? Нужно ли мне упаковывать dbutils.py файл и поместите импорт в requirements.txt ? Или есть способ включить изображение из простого оператора импорта в code.py файлы?

Комментарии:

1. Я бы поместил все в один пакет, тогда вы сможете импортировать без дополнительной работы. В том же пакете вы можете из mypackage.utils импортировать dbutils или даже из ..utils импортировать dbutils, просто создайте basedir в своем пакете и выберите разумное имя 🙂

2. Теперь, если вы действительно хотите разделить утилиты, создайте пакет с setup.py и установите usign pip, установите git yourepo / utils …, вы можете указать это для каждого требования, но ИМХО это фрагментировало бы код, который я бы использовал с одним пакетом и несколькими точками входа