23
我使用debug toolbar Django的,並想將它添加到如果兩個條件均滿足工程:如何檢查是否Python模塊存在,並且可以導入
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',
有沒有辦法做到這一點?
難道你不能使用'__import __(module_name,fromlist = [module_name])'而不是'import debug_toolbar'? – 2011-05-01 11:03:45
@Dan D .:這不等同於'從debug_toolbar導入debug_toolbar'嗎?但即使它有效,有什麼優勢? – 2011-05-01 12:34:11
不,奇怪的是它和'import debug_toolbar'一樣;我已經測試了這個python 2.5.2;好處是你可以使用'module_exists(「some_other_module」)'。 – 2011-05-01 12:43:26