Python: 'import *' vs execfile

W niektórych moich aplikacjach Django używamsettings_local.py plik zastępujący ustawienia różne w różnych środowiskach (np. programowanie, testowanie i produkcja). Początkowo użyłem następującego kodu, aby dołączyć jego zawartość dosettings.py:

try:
    from settings_local import *
except ImportError:
    sys.stderr.write("The settings_local.py file is missing.\n")
    DEBUG=False

Niedawno znalazłemexecfile funkcja i przełączone na coś takiego:

try:
    execfile(path.join(PROJECT_ROOT, "settings_local.py"))
except IOError:
    sys.stderr.write("The settings_local.py file is missing.\n"
    DEBUG=False

Oba działają zgodnie z przeznaczeniem, ale jestem ciekawy, czy brakuje mi jakichkolwiek poprawek i ogólnie, które podejście jest bardziej zalecane i dlaczego.

questionAnswers(3)

yourAnswerToTheQuestion