Как поднять проект из нескольких пакетов с setuptools

В наследство достался проект, включающий в себя несколько пакетов, собирающихся через setuptools. Структура проекта следующая:

server/
  ├── requirements.txt
  ├── pkg1/
       ├── pkg1/
            ├── __init__.py
            ├── main.py
            └── ...  
       └── setup.py          
  ├── pkg2/  
       ├── pkg2/
            ├── __init__.py
            ├── main.py
            └── ...  
       └── setup.py             
  └── ...

Некоторые пакеты зависят только от внешних библиотек из requirements.txt, некоторые только от соседних модулей (напр. pkg1 имеет в зависимостях только pkg2), некоторые и от соседей и от внешних.

Пример файла setup.py:

import os
from setuptools import setup, find_packages


def get_version():
  return os.environ.get("PEP440_VERSION", "0.0.0.1")


setup(
  name="pkg1",
  version=get_version(),
  packages=find_packages(),
  entry_points={
    "console_scripts": ["pkg1 = module.main:main"],
  },
  install_requires=["pkg2"],
  ...
)

Вопрос, как это чудо поднять?

На текущий момент пришел к тому, что:

  1. сделал общее виртуальное окружение в папке server
  2. в этой же папке запустил pip install -r requirements.txt
  3. в каждой директории (pkg1, pkg2, ...) запустил pip install --editable .

Далее из папки server запускаю команду python pkg1/src/main.py. Результат ModuleNotFoundError: No module named 'pkg2.util'

Проект успешно запускается через docker-compose, но в моем случае нужно это запустить нативно через python.

Любая помощь приветствуется!


Ответы (0 шт):