You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 06:42:03