【问题标题】:distutilscross issue when install PyAudio for cross-platform为跨平台安装 PyAudio 时出现 distutilscross 问题
【发布时间】:2016-10-28 12:30:51
【问题描述】:

当我为我的 MIPS 嵌入式平台安装 PyAuduo 时,我收到了这个错误:

 running build
 Traceback (most recent call last):
 File "setup.py", line 122, in <module>
 extra_link_args=extra_link_args)
 File "/usr/local/lib/python3.5/distutils/core.py", line 148, in setup
     dist.run_commands()
 File "/usr/local/lib/python3.5/distutils/dist.py", line 955, in 
   run_commands
   self.run_command(cmd)
  File "/usr/local/lib/python3.5/distutils/dist.py", line 973, in 
 run_command
   cmd_obj.ensure_finalized()
  File "/usr/local/lib/python3.5/distutils/cmd.py", line 107, in  
     ensure_finalized
   self.finalize_options()
   File "/usr/local/lib/python3.5/site-packages/distutilscross-0.1-   
    py3.5.egg/distutilscross/crosscompile.py", line 16, in finalize_options
   AttributeError: '_Environ' object has no attribute 'has_key'

似乎“crosscompile.py”无法正常运行python3。 有谁知道如何修改 crosscompile.py 中的代码以在 pyhton3 中正常工作?

【问题讨论】:

  • 代码是 [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的例子吗?

标签: python


【解决方案1】:

how to solve AttributeError: '_Environ' object has no attribute 'has_key'

看起来 PyAudio 是用 Python 2x 构建的。 Python 2x 支持has_key() 函数来检查字典中是否存在键。在 Python 3x 中,您只需这样做:

if 'the_key' in os.environ:

您可以将crosscompile.py 中的这一行更改为快速修复,然后联系开发人员 (http://people.csail.mit.edu/hubert/pyaudio/#contact)。

【讨论】:

  • 代码是: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吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-06
  • 1970-01-01
  • 2023-02-24
  • 2011-01-19
  • 1970-01-01
  • 2021-07-29
相关资源
最近更新 更多