【问题标题】:Installing pocketsphinx python module: command 'swig.exe' failed安装pocketsphinx python模块:命令'swig.exe'失败
【发布时间】:2017-11-14 06:03:13
【问题描述】:

我得到了这样的东西。谁能告诉我如何解决这个问题。

C:\Users\krush\Documents\ML using Python>pip install pocketsphinx
Collecting pocketsphinx
  Using cached pocketsphinx-0.1.3.zip
Building wheels for collected packages: pocketsphinx
  Running setup.py bdist_wheel for pocketsphinx: started
  Running setup.py bdist_wheel for pocketsphinx: finished with status 'error'
  Complete output from command C:\Users\krush\Anaconda3\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\krush\\AppData\\Local\\Temp\\pip-build-cns2i_wb\\pocketsphinx\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d C:\Users\krush\AppData\Local\Temp\tmp3tyvnl9wpip-wheel- --python-tag cp36:
  running bdist_wheel
  running build_ext
  building 'sphinxbase._ad' extension
  swigging swig/sphinxbase/ad.i to swig/sphinxbase/ad_wrap.c
  swig.exe -python -modern -Ideps/sphinxbase/include -Ideps/sphinxbase/include/sphinxbase -Ideps/sphinxbase/include/win32 -Ideps/sphinxbase/swig -outdir sphinxbase -o swig/sphinxbase/ad_wrap.c swig/sphinxbase/ad.i
  error: command 'swig.exe' failed: No such file or directory

  ----------------------------------------
  Failed building wheel for pocketsphinx
  Running setup.py clean for pocketsphinx
Failed to build pocketsphinx
Installing collected packages: pocketsphinx
  Running setup.py install for pocketsphinx: started
    Running setup.py install for pocketsphinx: finished with status 'error'
    Complete output from command C:\Users\krush\Anaconda3\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\krush\\AppData\\Local\\Temp\\pip-build-cns2i_wb\\pocketsphinx\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\krush\AppData\Local\Temp\pip-x5mxeczy-record\install-record.txt --single-version-externally-managed --compile:
    running install
    running build_ext
    building 'sphinxbase._ad' extension
    swigging swig/sphinxbase/ad.i to swig/sphinxbase/ad_wrap.c
    swig.exe -python -modern -Ideps/sphinxbase/include -Ideps/sphinxbase/include/sphinxbase -Ideps/sphinxbase/include/win32 -Ideps/sphinxbase/swig -outdir sphinxbase -o swig/sphinxbase/ad_wrap.c swig/sphinxbase/ad.i
    error: command 'swig.exe' failed: No such file or directory

    ----------------------------------------
Command "C:\Users\krush\Anaconda3\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\krush\\AppData\\Local\\Temp\\pip-build-cns2i_wb\\pocketsphinx\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\krush\AppData\Local\Temp\pip-x5mxeczy-record\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\krush\AppData\Local\Temp\pip-build-cns2i_wb\pocketsphinx\

【问题讨论】:

标签: python swig pocketsphinx


【解决方案1】:

为了解决这个问题,我下载了swig for windows

  1. 将 swig.exe 复制到 python 安装文件夹(例如 C:/python27)

  2. 打开swigwin-3.0.12/Lib文件夹并将所有*.swg文件复制到C:/python27/Lib或等效的python路径

  3. 打开swigwin-3.0.12/Lib/python并将所有文件复制到C:/python27/Lib

  4. 打开swigwin-3.0.12/Lib文件夹并将typemaps文件夹复制到C:/python27/Lib

(同时确保您已安装 Microsoft Visual C++ Compiler for Python)

这些步骤对我有用。

【讨论】:

  • 我还需要将 'typemaps' 文件夹复制到 C:/python27/Lib 文件夹。
  • 我复制了swig for windows 的 .zip 链接,安装到一个目录,将该目录添加到我的环境变量 PATH - 重新打开一个新终端并运行“pip install PocketSphinx”,它成功了时间。
  • 我如何为 linux 提供 swig
  • 您可以访问swig.org/download.html获取最新版本的swig for windows。
  • 使用环境变量查看正确答案stackoverflow.com/a/52329457/2474348
【解决方案2】:

您可以简单地将 Swig 的位置添加到环境变量中,而不是将 Swig 文件复制到 Python 文件夹:

  1. Ctrl+S
  2. 输入env,然后按Enter
  3. 双击Path
  4. path-to-Swig 添加到最后一个空白行
  5. 点击OK并重启你的电脑

【讨论】:

  • 这是一个非常好的解决方案,比当前接受的答案更好。
  • 您的意思是 1. [Windows-Key] + S 吗?和 2. 编辑环境变量?和 3. 在您的 3 之前按“环境变量”?并且根据superuser.com/questions/130029/refresh-environment-variable你可以注销并再次登录而不是5.重新启动
  • 我是接受答案的作者,我同意这个更好
  • 在大多数情况下,您不必重新启动 PC,只需重新启动命令行即可。
【解决方案3】:
conda install swig
pip install pocketsphinx

我不想做其他人建议的所有设置,所以我尝试了这个,它成功了。 不过,这可能仅在您使用 Anconada 时才有效。

【讨论】:

  • 那行得通。如果您是 Windows 用户,请确保以管理员身份运行 Anaconda Prompt
  • 我在 Win10 上显示“'conda' 不是内部或外部命令、可运行程序或批处理文件。”
  • 这应该是 imo 接受的答案。少即是多。
【解决方案4】:

您尝试使用pip 安装pocketsphinx,它将下载并编译此模块。它需要一些编译工具,例如swig

另一种解决方案是安装pocketsphinx 的二进制版本。您可以下载二进制版本here。您必须根据您的安装选择正确的版本。

要确定您必须下载哪一个,您可以运行以下命令,它会告诉您您需要哪个版本以及您运行的是 32 位还是 64 位 python 解释器。

"C:\Users\krush\Anaconda3\python.exe" --version
"C:\Users\krush\Anaconda3\python.exe" -c "import struct;print(struct.calcsize('P') * 8)"

以下是下载正确版本后可以输入的一些命令

"C:\Users\krush\Anaconda3\python.exe" -m pip install pocketsphinx‑0.1.3‑cp35‑cp35m‑win32.whl
"C:\Users\krush\Anaconda3\python.exe" -m pip install pocketsphinx‑0.1.3‑cp36‑cp36m‑win_amd64.whl

【讨论】:

  • 效果很好。现在程序正在识别音频,而 PC 处于离线状态。
  • @KrushiRaj 下载的文件需要放在哪里?那么下面的命令有效吗?
  • 应与您尝试执行命令的位置位于同一目录中。请参阅接受的答案以了解更多信息。
【解决方案5】:

我也遇到了同样的错误,在 ubuntu 16.04 中安装时,我执行了以下命令:

sudo apt-get install -y python python-dev python-pip build-essential swig git libpulse-dev

sudo pip install pocketsphinx

来源:pocketsphinx-python

【讨论】:

    【解决方案6】:

    如果您正在使用 anaconda 导航器。
    去环境吧。
    搜索 swig,就会显示你的包。选择包并单击应用按钮。 它还会给出其他依赖项的提示列表,需要用 swig 安装。
    所以只需全选并点击应用按钮。
    所有依赖项都将安装在 anaconda 的根目录中。

    这对我有用,希望对您有所帮助。

    【讨论】:

      【解决方案7】:

      有几组命令可以解决这个问题。只需执行它们:

      sudo apt-get install -y python3 python3-dev python3-pip build-essential swig git libpulse-dev
      
      sudo apt-get install libasound2-dev
      
      sudo pip install pocketsphinx
      

      【讨论】:

        【解决方案8】:

        对我有用的是从 conda 安装 swing 和

        conda install swing
        

        如果安装了搜索它的安装位置

        where swing
        

        然后将该路径添加到您的环境变量中

        【讨论】:

          【解决方案9】:

          对于遇到类似问题的 mac 用户,当前的pip 安装框架似乎存在问题。我关注了this thread 并使用了链接的解决方案。似乎不会很快有 pip 修复。

          请注意,在运行上述步骤之前,您必须先 brew install swig - homebrew install link

          【讨论】:

            【解决方案10】:
            pip install pipwin
            python -m pipwin install pocketsphinx
            

            你也可以使用 pipwin 来安装 pocketsphinx。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-12-29
              • 2020-06-19
              • 2022-12-03
              • 1970-01-01
              • 2015-05-13
              • 1970-01-01
              相关资源
              最近更新 更多