6

Para el programa Python que estoy escribiendo, me gustaría dar la oportunidad de configurarlo de tres maneras diferentes. Variables de entorno, archivos de configuración y argumentos de línea de comando.¿Qué orden de lectura de valores de configuración?

Lógicamente creo que los argumentos de la línea de comando siempre deben tener la más alta prioridad. ¿Tengo dudas sobre si las variables de entorno deberían tener prioridad sobre los archivos de configuración? ¿Y será importante si los archivos de configuración son para todo el sistema, específicos del usuario o dados como argumento en la línea de comando?

(Tenga en cuenta que mi plataforma es Unix/Linux)

Respuesta

15

La norma, que yo sepa es la primera mirada de un parámetro de línea de comandos, si no se encuentra el medio ambiente var, a continuación, el archivo de configuración local, entonces el archivo de configuración global.

Entonces, cuando un paquete se instala en alguna parte. Tendrá un archivo de configuración predeterminado. Esto se puede cambiar con un archivo de configuración local. Que puede anularse con un parámetro de entorno y luego el parámetro de línea de comando tiene la precedencia más alta.

Si se declara un archivo de configuración en la línea de comando, su contenido tendrá prioridad sobre los parámetros ambientales o cualquier otro archivo de configuración. Pero los parámetros de línea de comando prevalecerán sobre él. Pero recuerde que la ruta de búsqueda aún existe. Si el paquete está buscando una var, lo busca.

Command line. 
Config file thats name is declared on the command line. 
Environment vars 
Local config file (if exists) 
Global config file (if exists) 

Creo que muchos compiladores de línea de comandos y las obras pak Boost biblioteca de configuración de una forma similar

+0

no sé si su orden es dada oficial o siempre significativa, pero suena bastante bien para mí:) +1 – Mecki

+0

Bueno, siempre podríamos gastar mucho dinero y hacer un estándar IEEE. N/A. Demasiado tiempo y esfuerzo por poca recompensa. Microsoft, Google y los demás sospechosos habituales tendrían sus mil y una razones por las que posiblemente no se ajusten a la directriz Mecki/King. – kingchris

+1

La posición "archivo de configuración en la línea de comando" es discutible. Desde mi experiencia, normalmente reemplaza los archivos de stock. –

Cuestiones relacionadas