Я предложил простую альтернативу, которая не зависит от определения функций:
# Create a dummy enclosing
while True:
try:
import simplejson as json
break
except:
pass
try:
import json
break
except:
pass
try:
from django.utils import simplejson as json
break
except:
pass
raise ImportError('Requires either simplejson, Python 2.6 or django.utils')
Обратите внимание, я не совсем уверен, красивее ли это, чем подход с использованием вспомогательной функции.