python2代码在使用python3.5时出错

2024-10-02 06:27:20 发布

您现在位置:Python中文网/ 问答频道 /正文

def finalize_options(self):
    if self.cross_compile and os.environ.has_key('PYTHONXCPREFIX'):
        prefix = os.environ['PYTHONXCPREFIX']
        sysconfig.get_python_lib = get_python_lib
        sysconfig.PREFIX = prefix
        sysconfig.EXEC_PREFIX = prefix
        # reinitialize variables
        sysconfig._config_vars = None
        sysconfig.get_config_var("LDSHARED")

    _build.finalize_options(self)

上面的代码在python3.5上运行时会出现错误。 错误是: 交叉编译.py“,第16行,在finalize\u options中 AttributeError:“\u Environ”对象没有属性“has”“key”

有人知道如何修改代码使之在python3.5中可用吗?在


Tags: key代码selfconfiggetprefixoslib
2条回答

has_key() was removed in Python 3.x. 使用in或{}

'PYTHONXCPREFIX' in os.environ

使用get

os.environ.get('PYTHONXCPREFIX')。如果不存在,则返回None。在

它也可以返回False,将其作为默认值传递。在

^{pr2}$

has_key在python3中被删除,但您也不应该在2中使用它。使用in运算符:

if self.cross_compile and 'PYTHONXCPREFIX' in os.environ:

相关问题 更多 >

    热门问题