Python: «импорт *» против execfile

В некоторых моих приложениях Django я используюsettings_local.py файл для переопределения настроек, которые различны в разных средах (например, разработка, тестирование и производство). Первоначально я использовал следующий код, чтобы включить его содержимое вsettings.py:

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

Я недавно нашелexecfile работать и переключаться на что-то вроде:

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

Оба работают как задумано, но мне любопытно, пропускаю ли я какие-либо ошибки, и в целом, какой подход более рекомендуется и почему.

Ответы на вопрос(3)

Ваш ответ на вопрос