2016-07-14 238 views
5

Ho la seguente struttura per il mio pacchetto di Python:python setup.py costruire ignorando alcuni file

$ tree -d | grep -v "__pycache__" 
. 
├── src 
│   ├── poliastro 
│   │   ├── iod 
│   │   ├── tests 
│   │   └── twobody 
│   │    └── tests 
├── setup.py 
└── MANIFEST.in 

47 directories 

Buf dopo aver eseguito python setup.py build, la directory più interno test non è sempre copiati:

$ tree -d | grep -v "__pycache__" 
. 
├── build 
│ ├── lib 
│ │ └── poliastro 
│ │  ├── iod 
│ │  ├── tests 
│ │  └── twobody 

On Al contrario, python setup.py sdist funziona correttamente.

Finora ho utilizzato le regole MANIFEST.in per includere o escludere determinati file, modelli e directory dal sdist. C'è un modo per controllare cosa va nella directory build? Perché alcuni test stanno arrivando e altri no?

riferimento al problema originale e il codice sorgente: https://github.com/poliastro/poliastro/issues/129

+0

Puoi condividere il contenuto di 'MANIFEST.in'? – creativeChips

risposta

2

Il tuo setup() manca include_package_data=True. Vedi questo PR che ho realizzato https://github.com/poliastro/poliastro/pull/139

Discussione: Senza questo, i file del pacchetto non python (come i file test py che non sono "in un pacchetto") non sono inclusi di default, anche se tecnicamente parte di un albero di directory di pacchetti Python altrimenti incluso.
/HTH

+0

Wow, richiesta di pull inclusa :) Grazie mille! – astrojuanlu

0

Prova a mettere __init__.py file all'interno delle cartelle inclusi specificati in MANIFEST.in.

+0

Il problema è che si tratta di cartelle di test che non devono essere importate. – astrojuanlu

+0

Ok. In passato ho scoperto che dopo l'installazione, lo strumento pip rimuoveva tutte le cartelle che non erano state specificate come modulo (con all'interno \ _ \ _ init \ _ \ _. Py). – ecolell