Python 如何解决属性错误:'_环境';对象没有属性';有U键';

Python 如何解决属性错误:'_环境';对象没有属性';有U键';,python,eclipse,web-services,Python,Eclipse,Web Services,在上面的代码中显示了以下错误 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 'fcg

在上面的代码中显示了以下错误

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

我猜您正在使用python 3。在Python 2中,字典有一个
has_key()
方法。在Python3中,正如异常所说,它不再存在。您需要在操作符中使用

if os.environ.has_key('SERVER_SOFTWARE') \
AttributeError: '_Environ' object has no attribute 'has_key'
这里有一个示例(py3k):

导入操作系统 >>>如果os.environ中的“处理器级别”:打印(os.environ[“处理器级别]) 6. >>>如果os.environ.具有密钥(“处理器级别”):打印(“失败”) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 如果os.environ.具有密钥(“处理器级别”):打印(“失败”) AttributeError:“\u Environ”对象没有属性“has\u key” >>>
如果我按照你说的做了,就会出现以下错误-如果os.environ^ SyntaxError中的'SERVER\u SOFTWARE'无效语法有两个想法:1)你错过了“:”或“\”。2) 您使用的是2.2.os.environ之前的Python版本,它实际上具有名为has_key的属性。请尝试dir(os.environ)@user1074886,确认您使用的是哪个python版本。编辑您的问题并添加带有修改和新语法错误的代码。
if 'SERVER_SOFTWARE' in os.environ
>>> 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'
>>>