无法通过pip安装pocketsphinx的报错问题求助
Pocketsphinx安装报错:AttributeError: module 'pkgutil' has no attribute 'ImpImporter'
问题描述
我正在开发一款基于pocketsphinx的Python语音转文本程序,执行pip install pocketsphinx命令时出现安装失败。谷歌搜索相关解决方案未找到有效办法,附上报错信息,求有类似经历的开发者提供解决思路。原本期望顺利完成pocketsphinx安装,实际遇到以下错误:
报错信息
C:\Users\david>pip install pocketsphinx Collecting pocketsphinx Using cached pocketsphinx-5.0.2.tar.gz (34.2 MB) Installing build dependencies ... done Getting requirements to build wheel ... error error: subprocess-exited-with-error × Getting requirements to build wheel did not run successfully. │ exit code: 1 ╰─> [33 lines of output] Traceback (most recent call last): File "C:\Users\david\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 353, in <module> main() File "C:\Users\david\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 335, in main json_out['return_val'] = hook(**hook_input['kwargs']) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\david\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 112, in get_requires_for_build_wheel backend = _build_backend() ^^^^^^^^^^^^^^^^ File "C:\Users\david\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 77, in _build_backend obj = import_module(mod_path) ^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\david\AppData\Local\Programs\Python\Python312\Lib\importlib\__init__.py", line 90, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1387, in _gcd_import File "<frozen importlib._bootstrap>", line 1360, in _find_and_load File "<frozen importlib._bootstrap>", line 1310, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 1387, in _gcd_import File "<frozen importlib._bootstrap>", line 1360, in _find_and_load File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 935, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 994, in exec_module File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed File "C:\Users\david\AppData\Local\Temp\pip-build-env-pi7v5za1\overlay\Lib\site-packages\setuptools\__init__.py", line 16, in <module> import setuptools.version File "C:\Users\david\AppData\Local\Temp\pip-build-env-pi7v5za1\overlay\Lib\site-packages\setuptools\version.py", line 1, in <module> import pkg_resources File "C:\Users\david\AppData\Local\Temp\pip-build-env-pi7v5za1\overlay\Lib\site-packages\pkg_resources\__init__.py", line 2191, in <module> register_finder(pkgutil.ImpImporter, find_on_path) ^^^^^^^^^^^^^^^^^^^ AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'? [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: subprocess-exited-with-error × Getting requirements to build wheel did not run successfully. │ exit code: 1 ╰─> See above for output. note: This error originates from a subprocess, and is likely not a problem with pip.
解决思路
- 核心原因:Python 3.12移除了
pkgutil.ImpImporter,而pocketsphinx依赖的旧版setuptools不兼容该版本Python。 - 方案1:降级Python版本
安装Python 3.11或更低版本(推荐3.11,兼容性更稳定),之后重新执行pip install pocketsphinx。 - 方案2:指定兼容的setuptools版本
先安装适配Python 3.12的setuptools版本,再安装pocketsphinx:pip install setuptools<60.0.0 pip install pocketsphinx - 方案3:使用预编译wheel包
下载对应你系统和Python版本的pocketsphinx预编译wheel文件,直接安装:pip install 你的wheel文件路径/xxx.pocketsphinx-xxx.whl
内容的提问来源于stack exchange,提问作者DavidMotionless
相关产品推荐
相关产品推荐

