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é.

Respuestas a la pregunta(3)

Su respuesta a la pregunta