django自定义配置报错:AttributeError:'Settings'objecthasnoattribute'HBase'如果我们需要使用Hbase,可以模仿Mysql把相关信息放到配置中写到settings文件里了,但是遇到了无法导入的问题。在[12]中:settings.HBASE----------------------------------------------------------------------AttributeErrorTraceback(最近调用最后)在---->1settings.HBASE~\.virtualenvs\twitter-5Z0qCgub\lib\site-packages\django\conf\__init__.pyin__getattr__(self,name)81如果self._wrapped为空:82self._setup(name)--->83val=getattr(self._wrapped,name)8485#一些需要进一步修改的特殊情况。AttributeError:'Settings'objecthasnoattribute'HBASE'In[13]:settings.HBase--------------------------------------------------------------------------AttributeErrorTraceback(最近一次调用last)in---->1settings.HBase~\.virtualenvs\twitter-5Z0qCgub\lib\site-packages\django\conf\__init__.py中__getattr__(self,name)81ifself._wrappedisempty:82self._setup(name)--->83val=getattr(self._wrapped,name)8485#一些特殊情况需要进一步修改的设置。AttributeError:'Settings'objecthasnoattribute'HBase'排查结果发现在Django的配置文件settings中,必须使用fullsize才能导入HBase-->HBASEHBase={'default':{'HOST':'192.168.31.245','PORT':9090}}需要改为HBASE={'default':{'HOST':'192.168.31.245','PORT':9090}}大小写错误!Django配置文件设置中不要使用大小写混合,必须全部大写!您可以从以下文件中看到关键代码ifsetting.isupper():django/conf/__init__.pyclassSettings:def__init__(self,settings_module):#updatethisdictfromglobalsettings(butonlyforALL_CAPSsettings)forsettingindir(global_settings):ifsetting.isupper():setattr(self,setting,getattr(global_settings,setting))#存储设置模块以防以后有人关心自己。SETTINGS_MODULE=settings_modulemod=importlib。import_module(self.SETTINGS_MODULE)tuple_settings=("INSTALLED_APPS","TEMPLATE_DIRS","LOCALE_PATHS)setting=self_exptings.set()用于在dir(mod)中设置:如果setting.isupper():setting_value=getattr(mod,setting)if(settingintuple_settingsandnotisinstance(setting_value,(list,tuple))):raiseImproperlyConfigured("%s设置必须是列表或元组。"%setting)setattr(self,setting,setting_value)self._explicit_settings.add(设置)