2009-05-21 7 views
6

Sto lavorando su un pacchetto Python che utilizza namespace_packages e find_packages() questo modo in setup.py:In che modo setuptools decide quali file conservare per sdist/bdist?

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 c'è MANIFESTA.

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

Quali sono le regole predefinite per ciò che setup.py include ed esclude dalle distribuzioni create? 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.

risposta

4

È necessario aggiungere una direttiva package_data. Ad esempio, se desideri includere file con estensioni .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']... 

) 
+1

Ok, ho fatto ciò che ti dispiace. Ma quando lo installo con '' install git + git: // repo'', non include i file. Supponiamo che tu sia al livello più alto del layout della directory? – Pol