Mi piacerebbe importare dinamicamente varie impostazioni e configurazioni nel mio programma python: cosa fareste di solito con un file .ini o qualcosa di simile.Uso di Python come linguaggio di configurazione per un programma Python
Ho iniziato con JSON per la sintassi del file di configurazione, quindi spostato su YAML, ma in realtà mi piacerebbe usare Python. Minimizzerà il numero di formati e mi permetterò di usare il codice nel file di configurazione, che può essere conveniente.
ho inciso un sistema basato __import__
per consentire questo codice usando che assomiglia:
account_config = __import__(settings.CONFIG_DIR + '.account_name', fromlist=[settings.CONFIG_DIR])
Funziona praticamente, ma io sono in esecuzione in tutti i tipi di problemi esoterici - ad es. se provo ad importare "test" raccoglie alcune librerie python interne che si trovano nel percorso python invece del mio test.
Quindi mi chiedo: sta usando Python come linguaggio di configurazione per un programma Python praticabile o sto chiedendo problemi? Ci sono esempi da cui posso rubare?
Il progetto Django fa quasi esattamente questo. È comune. È una buona idea. Scegli un nome migliore. La libreria è piena di nomi che non puoi usare. Tuttavia, ci sono un numero quasi infinito di nomi che sono ** non ** nella libreria. –
Grazie S.Lott. Ho incontrato il problema "test" quasi immediatamente, quindi mi ha spaventato - sono preoccupato che ci saranno scontri di nomi casuali che causeranno il debug degli incubi nella produzione. – Parand
Non sono "casuali". Sono ben documentati nella documentazione della biblioteca. –