我正在使用debug toolbar和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的其他地方,我需要if / 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',
有办法吗?
答案 0 :(得分:43)
您可以在函数中使用相同的逻辑:
def module_exists(module_name):
try:
__import__(module_name)
except ImportError:
return False
else:
return True
此解决方案没有性能损失,因为模块只导入一次。