write management externalize example descargar python configuration configparser import-module

python - management - ConfigParser vs import config



python environment config (4)

El mayor problema que veo con la import config es que no sabes qué pasará cuando lo importes. Sí, obtendrá un conjunto de símbolos a los que se hace referencia de forma natural mediante a . interfaz de estilo. Pero el código en el archivo de configuración también puede hacer quién sabe qué. Ahora, si confía completamente en sus usuarios, entonces permitirles hacer lo que sienten en el archivo de configuración es posiblemente algo bueno. Sin embargo, si tiene cantidades desconocidas, o si desea proteger a los usuarios de ellos mismos, entonces tener un archivo de configuración en un formato más tradicional será más seguro y más seguro.

ConfigParser es el analizador de configuración de vainilla muy debatido para Python.
Sin embargo, simplemente puede import config donde config.py tiene un código de Python que establece los parámetros de configuración.

¿Cuáles son las ventajas y desventajas de estos dos enfoques de configuración? ¿Cuándo debo elegir cada uno?


En mi opinión, todo se reduce a una cuestión de estilo personal. ¿Tiene la intención de que terceros para editar su configuración? Si es así, quizás tenga sentido tener un estilo de configuración más "natural" en el ConfigParser que no sea tan técnico y que no esté demasiado lejos de la cabeza de su público objetivo.

Muchos proyectos populares como Fabric y Django usan el estilo de configuración "nativo" que es esencialmente solo un módulo de Python. Fabry tiene fabfile.py y Django tiene settings.py .

En general, tendrá mucha más flexibilidad al usar un enfoque nativo para importar un módulo simplemente porque puede hacer lo que quiera en ese archivo, incluida la definición de funciones, clases, etc. porque solo está importando otro módulo de Python. .


Esto depende completamente de sus necesidades y objetivos para el script. Una forma realmente no es "mejor", simplemente diferente. Para una discusión muy detallada sobre la mayoría de los analizadores de configuración de pythons (incluidos los módulos ConfigParser y config ), consulte:

Python Wiki - ConfigParserShootout


La "configuración de importación" es muy simple, flexible y poderosa, pero como puede hacer cualquier cosa, podría ser peligroso si la configuración no está en un lugar seguro.