Python: 'import *' vs execfile
En algunas de mis aplicaciones Django estoy usando unsettings_local.py
archivo para anular configuraciones que son diferentes en varios entornos (por ejemplo, desarrollo, prueba y producción). Originalmente he usado el siguiente código para incluir su contenido en elsettings.py
:
try:
from settings_local import *
except ImportError:
sys.stderr.write("The settings_local.py file is missing.\n")
DEBUG=False
Recientemente he encontrado elexecfile
Funciona y cambia a algo como:
try:
execfile(path.join(PROJECT_ROOT, "settings_local.py"))
except IOError:
sys.stderr.write("The settings_local.py file is missing.\n"
DEBUG=False
Ambos funcionan según lo previsto, pero tengo curiosidad por saber si me estoy perdiendo algún error, y en general cuál es el enfoque más recomendado y por qué.