В вашем setup.py
должна быть строка, например:
setup(
# ...
packages=find_packages(),
# ...
)
, чтобы решить вашу проблему, вам нужно работать с этим методом find_packages
, эта функция возвращает список пакетов Python в этом проекте
так что решение простое, получите аргументы пользователей для setup.py и на основе этого верните выбор find_packages
, здесь приведен упрощенный код
if '--full' in sys.argv:
packages = find_packages()
elif '--only-module-a':
packages = [p for p in find_packages() if p.startswith('a')]
setup(
# ...
packages=packages,
# ...
)
PS: как прокомментировал @hoefling, это решение является хакерским и может вызвать недопонимание для пользователей, вы должны разделить пакет на меньшие подпакеты (вы все равно можете хранить их в одном репо)