Как setuptools решает, какие файлы оставить для sdist / bdist? - PullRequest
6 голосов
/ 21 мая 2009

Я работаю над пакетом Python, который использует namespace_packages и find_packages(), как в setup.py:

from setuptools import setup, find_packages
setup(name="package",
    version="1.3.3.7",
    package=find_packages(),
    namespace_packages=['package'], ...)

Он не находится в управлении исходным кодом, потому что это набор вышестоящих компонентов. Манифеста нет.

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

Каковы правила по умолчанию для того, что setup.py включает и исключает из встроенных дистрибутивов? Я исправил свою проблему, добавив MANIFEST.in с

recursive-include package *

но я бы хотел понять, что по умолчанию делают setuptools и distutils.

1 Ответ

4 голосов
/ 21 мая 2009

Вам необходимо добавить директиву package_data. Например, если вы хотите включить файлы с расширениями .txt или .rst:

from setuptools import setup, find_packages
setup(name="package",
    version="1.3.3.7",
    package=find_packages(),
    include_package_data=True,
    namespace_packages=['package'], 
     package_data = {
        # If any package contains *.txt or *.rst files, include them:
        '': ['*.txt', '*.rst']...

)
...