Comment peut-setuptools décider quels fichiers garder pour sdist / bdist?
-
23-08-2019 - |
Question
Je travaille sur un paquet Python qui utilise namespace_packages
et find_packages()
comme tant en setup.py:
from setuptools import setup, find_packages
setup(name="package",
version="1.3.3.7",
package=find_packages(),
namespace_packages=['package'], ...)
Il ne contrôle pas la source, car il est un faisceau de composants en amont. Il n'y a pas MANIFESTE.
Quand je lance python setup.py sdist
je reçois un tarball de la plupart des fichiers dans le répertoire de package/
mais tous les répertoires qui ne contiennent pas de fichiers .py
sont laissés.
Quelles sont les règles par défaut pour ce setup.py
comprend et exclut les distributions construites? J'ai fixé mon problème en ajoutant un MANIFEST.in
avec
recursive-include package *
mais je voudrais comprendre ce que setuptools et distutils font par défaut.
La solution
Vous devez ajouter une directive package_data. Par exemple, si vous voulez inclure des fichiers avec des extensions .txt ou .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']...
)