Как поднять проект из нескольких пакетов с 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"],
...
)
Вопрос, как это чудо поднять?
На текущий момент пришел к тому, что:
- сделал общее виртуальное окружение в папке
server
- в этой же папке запустил
pip install -r requirements.txt
- в каждой директории (pkg1, pkg2, ...) запустил
pip install --editable .
Далее из папки server
запускаю команду python pkg1/src/main.py
. Результат ModuleNotFoundError: No module named 'pkg2.util'
Проект успешно запускается через docker-compose, но в моем случае нужно это запустить нативно через python.
Любая помощь приветствуется!