Python :'импорт *' vs 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

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

11
задан Berislav Lopac 28 July 2012 в 17:46
поделиться