Как проверить, существует ли модуль python и может быть импортирован
Я использую панель инструментов отладки с django и хотел бы добавить ее в проект, если выполняются два условия:
-
settings.DEBUG
True
- сам модуль существует
Нетрудно сделать первый
# adding django debug toolbar
if DEBUG:
MIDDLEWARE_CLASSES += 'debug_toolbar.middleware.DebugToolbarMiddleware',
INSTALLED_APPS += 'debug_toolbar',
Но как проверить, существует ли модуль?
Я нашел это решение:
try:
import debug_toolbar
except ImportError:
pass
Но поскольку импорт происходит где-то еще в django, мне нужно, если /else логику, чтобы проверить, существует ли модуль, поэтому я могу проверить его в settings.py
def module_exists(module_name):
# ??????
# adding django debug toolbar
if DEBUG and module_exists('debug_toolbar'):
MIDDLEWARE_CLASSES += 'debug_toolbar.middleware.DebugToolbarMiddleware',
INSTALLED_APPS += 'debug_toolbar',
Есть ли способ сделать это?
Ответы
Ответ 1
В своей функции вы можете использовать одну и ту же логику:
def module_exists(module_name):
try:
__import__(module_name)
except ImportError:
return False
else:
return True
В этом решении нет штрафа за производительность, потому что модули импортируются только один раз.