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上运行时会出错。 错误是: crossize_py",第16行,在finalize_options中 AttributeError:' _Environ'对象没有属性' has_key'
有没有人知道如何修改代码以便在python3.5中使用?
答案 0 :(得分:3)
has_key
,但你也不应该在2中使用它。使用in
运算符:
if self.cross_compile and 'PYTHONXCPREFIX' in os.environ:
答案 1 :(得分:1)
has_key() was removed in Python 3.x.
使用in
或get
'PYTHONXCPREFIX' in os.environ
使用get
os.environ.get('PYTHONXCPREFIX')
。如果不存在则返回None。
它也可以返回False,并将其作为默认值传递。
os.environ.get('PYTHONXCPREFIX', False)