Domanda

Sto lavorando su un pacchetto Python che utilizza namespace_packages e find_packages() in questo modo in setup.py:

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

Non è in controllo source perché è un fascio di componenti a monte. Non v'è alcun MANIFESTO.

Quando eseguo python setup.py sdist ho un tarball della maggior parte dei file nella directory package/ ma qualsiasi directory che non contengono i file .py vengono lasciati fuori.

Quali sono le regole predefinite per quello setup.py include ed esclude dalla distribuzione compilata? Ho risolto il mio problema con l'aggiunta di un MANIFEST.in con

recursive-include package *

ma vorrei capire che cosa setuptools e distutils stanno facendo per impostazione predefinita.

È stato utile?

Soluzione

È necessario aggiungere una direttiva package_data. Per esempio, se si desidera includere i file con estensione .txt o .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']...

)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top