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
Ответы
Ответ 1
Используйте find_packages()
function:
from setuptools import setup, find_packages
setup(
# ...
packages=find_packages(),
)
Функция будет искать пакеты python (каталоги с файлом __init__.py
) и вернуть их как правильно отформатированный список. Он начнется в том же каталоге, что и setup.py script, но может быть предоставлен явный стартовый каталог вместо него, а также шаблоны исключения, если вам нужно пропустить некоторые вещи.
Ответ 2
Для людей, использующих чистые distutils вместо setuptools: вы должны передать список всех пакетов и подпакетов (но не все подмодули, они обнаружены) в параметре пакетов.