cómo resolver AttributeError: el objeto ‘_Environ’ no tiene atributo ‘has_key’

def _is_dev_mode(): # quick hack to check if the program is running in dev mode. # if 'has_key' in os.environ if os.environ.has_key('SERVER_SOFTWARE') \ or os.environ.has_key('PHP_FCGI_CHILDREN') \ or 'fcgi' in sys.argv or 'fastcgi' in sys.argv \ or 'mod_wsgi' in sys.argv: return False return True 

en el código anterior se muestra el siguiente error

 if os.environ.has_key('SERVER_SOFTWARE') \ AttributeError: '_Environ' object has no attribute 'has_key' 

Supongo que estás trabajando en Python 3. En Python 2, los diccionarios tenían un método has_key() . En Python 3, como dice la excepción, ya no existe. Necesitas usar el operador in :

 if 'SERVER_SOFTWARE' in os.environ 

Aquí tienes un ejemplo (py3k):

 >>> import os >>> if 'PROCESSOR_LEVEL' in os.environ: print(os.environ['PROCESSOR_LEVEL']) 6 >>> if os.environ.has_key('PROCESSOR_LEVEL'): print("fail") Traceback (most recent call last): File "", line 1, in  if os.environ.has_key('PROCESSOR_LEVEL'): print("fail") AttributeError: '_Environ' object has no attribute 'has_key' >>>