Подтвердить что ты не робот

Python setup.py sdist, включая только .py источник из модуля верхнего уровня

У меня есть setup.py:

from setuptools import setup

setup(
      ...
      packages=['mypackage'],
      test_suite='mypackage.tests',
      ...
    )

python setup.py sdist создает файл, который включает только исходные модули из mypackage верхнего уровня, а не mypackage.tests или любые другие подмодули.

Что я делаю неправильно?

Использование python 2.7

4b9b3361

Ответ 1

Используйте find_packages() function:

from setuptools import setup, find_packages

setup(
    # ...
    packages=find_packages(),
)

Функция будет искать пакеты python (каталоги с файлом __init__.py) и вернуть их как правильно отформатированный список. Он начнется в том же каталоге, что и setup.py script, но может быть предоставлен явный стартовый каталог вместо него, а также шаблоны исключения, если вам нужно пропустить некоторые вещи.

Ответ 2

Для людей, использующих чистые distutils вместо setuptools: вы должны передать список всех пакетов и подпакетов (но не все подмодули, они обнаружены) в параметре пакетов.