2012-05-25 20 views
5

Sto imballando la mia prima app Django e voglio lasciare fuori il mio file settings_local.py dall'uovo. Idealmente, sto cercando un modo per avere tutto ciò che è incluso nel file .gitignore anche dall'uovo.Come posso escludere i file nel mio .gitignore quando impacchettiamo un uovo Python?

Ho provato le seguenti variazioni nel mio file MANIFEST.in (uno per ogni uovo tentativo di creazione):

prune project_name settings_local.py 
prune project_name/settings_local.py 
exclude project_name settings_local.py 
exclude project_name/settings_local.py 

Ho anche provato ad aggiungere la seguente riga al mio file startup.py (su consiglio di un amico):

exclude_package_data= {'': 'settings_local.py'}, 

Qualsiasi suggerimento sarebbe molto apprezzato.

risposta

2

Non utilizzare un MANIFEST.in ma utilizzare setuptools-git; con quel pacchetto tutti i file inclusi nel tuo repository git faranno parte dell'uovo e tutti i file elencati in .gitignore non saranno.

devo il pacchetto installato a livello globale, in site-packages di mio pitone, ma dovrebbe essere sufficiente per elencare nel vostro setup.py nel setup_requires struttura:

setup(... 
    setup_requires=['setuptools-git'], 
    ... 
) 
+0

Grazie. Questo è perfetto. Sono imbarazzato nell'ammettere che il problema era che non avevo previsto la directory principale per setup.py quando ho inizializzato il repository locale, quindi era al di fuori di esso. – Nox

2

È possibile utilizzare git archive per produrre un file zip con i contenuti del repository git (come se fosse in una nuova directory di lavoro). Quindi puoi usare quei file per confezionare l'uovo, ma è necessario.

See: git archive