Windows10下pip安装PyAudio出现Getting requirements to build wheel错误
Windows10下安装PyAudio出现
Getting requirements to build wheel错误的解决办法 报错信息(中文翻译)
C:\Users\Kiet Tran\OneDrive\Documents\python>pip install pyaudio 正在收集 pyaudio 使用缓存的 PyAudio-0.2.13.tar.gz (46 kB) 正在安装构建依赖项... 完成 获取构建wheel的依赖项... 错误 error: subprocess-exited-with-error × 获取构建wheel的依赖项执行失败。 │ 退出代码: 1 ╰─> [33行输出] Traceback (最近的调用最后): 文件 "C:\Users\Kiet Tran\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", 第353行, in <module> main() 文件 "C:\Users\Kiet Tran\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", 第335行, in main json_out['return_val'] = hook(**hook_input['kwargs']) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 文件 "C:\Users\Kiet Tran\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", 第112行, in get_requires_for_build_wheel backend = _build_backend() ^^^^^^^^^^^^^^^^ 文件 "C:\Users\Kiet Tran\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", 第77行, in _build_backend obj = import_module(mod_path) ^^^^^^^^^^^^^^^^^^^^^^^ 文件 "C:\Users\Kiet Tran\AppData\Local\Programs\Python\Python312\Lib\importlib\__init__.py", 第90行, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 文件 "<frozen importlib._bootstrap>", 第1381行, in _gcd_import 文件 "<frozen importlib._bootstrap>", 第1354行, in _find_and_load 文件 "<frozen importlib._bootstrap>", 第1304行, in _find_and_load_unlocked 文件 "<frozen importlib._bootstrap>", 第488行, in _call_with_frames_removed 文件 "<frozen importlib._bootstrap>", 第1381行, in _gcd_import 文件 "<frozen importlib._bootstrap>", 第1354行, in _find_and_load 文件 "<frozen importlib._bootstrap>", 第1325行, in _find_and_load_unlocked 文件 "<frozen importlib._bootstrap>", 第929行, in _load_unlocked 文件 "<frozen importlib._bootstrap>", 第994行, in exec_module 文件 "<frozen importlib._bootstrap>", 第488行, in _call_with_frames_removed 文件 "C:\Users\Kiet Tran\AppData\Local\Temp\pip-build-env-09lbisw4\overlay\Lib\site-packages\setuptools\__init__.py", 第16行, in <module> import setuptools.version 文件 "C:\Users\Kiet Tran\AppData\Local\Temp\pip-build-env-09lbisw4\overlay\Lib\site-packages\setuptools\version.py", 第1行, in <module> import pkg_resources 文件 "C:\Users\Kiet Tran\AppData\Local\Temp\pip-build-env-09lbisw4\overlay\Lib\site-packages\pkg_resources\__init__.py", 第2191行, in <module> register_finder(pkgutil.ImpImporter, find_on_path) ^^^^^^^^^^^^^^^^^^^ AttributeError: 模块 'pkgutil' 没有属性 'ImpImporter'。是不是想找: 'zipimporter'? [输出结束] 注意: 此错误来自子进程,大概率不是pip的问题。 error: subprocess-exited-with-error × 获取构建wheel的依赖项执行失败。 │ 退出代码: 1 ╰─> 查看上面的输出。 注意: 此错误来自子进程,大概率不是pip的问题。
错误原因
- Python 3.12移除了废弃的
pkgutil.ImpImporterAPI,旧版本的setuptools/pkg_resources仍在调用该接口,导致构建依赖时出错。 - PyAudio官方暂未提供适配Python3.12的预编译包,直接用
pip install会触发源码编译流程,进而触发上述错误。
解决办法
方法一:使用预编译wheel包安装(推荐)
- 先安装wheel工具:
pip install wheel
- 下载对应你Python版本和系统位数的PyAudio预编译wheel包(比如Python3.12、Windows64位的包名为
PyAudio-0.2.13-cp312-cp312-win_amd64.whl) - 切换到下载目录,执行本地安装命令:
pip install PyAudio-0.2.13-cp312-cp312-win_amd64.whl
方法二:降级Python版本到3.11
如果找不到对应Python3.12的wheel包,可以将Python降级到3.11版本,然后直接执行:
pip install pyaudio
Python3.11仍支持pkgutil.ImpImporter接口,且官方有适配的预编译包,安装过程会更顺畅。
内容的提问来源于stack exchange,提问作者kiet
相关产品推荐
相关产品推荐

