How to solve AttributeError: object '_Environ' does not have attribute '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 

in the above code the following error is displayed:

 if os.environ.has_key('SERVER_SOFTWARE') \ AttributeError: '_Environ' object has no attribute 'has_key' 
+4
source share
1 answer

I suppose you are working on python 3. In Python 2, dictionaries had a has_key() method. In Python 3, as the exception says, it no longer exists. You need to use the in operator:

 if 'SERVER_SOFTWARE' in os.environ 

here you have an example (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 "<pyshell#18>", line 1, in <module> if os.environ.has_key('PROCESSOR_LEVEL'): print("fail") AttributeError: '_Environ' object has no attribute 'has_key' >>> 
+12
source

Source: https://habr.com/ru/post/1385292/


All Articles