Сделать коллекцию модулей Python устанавливаемой
У нас есть несколько скриптов на Python, и мы хотим, чтобы их можно было установить с помощью setuptools.
В конце импорт наших модулей (после их установки) должен работать так:
import companyname.productA.moduleA
Наш первый проект структуры выглядит так:
repository/
setup.py
companyname/
__init__.py
productA/
moduleA/
__init__.py
moduleA.py
moduleB/
__init__.py
moduleB.py
productB/
moduleA/
__init__.py
moduleA.py
moduleB/
__init__.py
moduleB.py
Кажется, это уже работает, но это производит установщик для всей коллекции. Нам также нужно сделать установщик только для продукта или даже только для модуля, потому что не каждому клиенту понадобится все. Это представляется возможным путем дублирования всего хранилища и удаления всех продуктов / модулей, которые не должны попадать в установщик. Этот подход звучит не очень хорошо для меня, поэтому мой первый вопрос: есть ли лучший способ для этого?
Есть еще одна проблема: как обращаться с версией, автором, сопровождающим?
setup.py в настоящее время выглядит так:
setuptools.setup(
version='...',
author='...',
author_email='...',
maintainer='...',
maintainer_email='...',
packages=setuptools.find_packages(),
...
)
Должны ли мы добавить всех авторов всех модулей в setup.py? Можно ли назначить каждому модулю версию? Или нам нужно сделать объединенный номер версии всех модулей для setup.py? Если да, каков наилучший подход для этого?