Installing pocketsphinx python module: command 'swig.exe' failed
Asked Answered
C

12

24

I'm getting something like this. Can anyone please tell me how to fix this.

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\
Concepcion answered 12/6, 2017 at 16:59 Comment(2)
Possible duplicate of Swig not found when installing pocketsphinx PythonFayfayal
Google Colab users might want to look this answerDressy
M
36

To fix the problem, I downloaded swig for windows at the time of writing this answer it was 3.0.12

For the latest swig windows version follow this link

  1. Copy swig.exe to the python installation folder (for ex C:/python27)

  2. Open the swigwin-3.0.12/Lib folder and copy all *.swg files to the C:/python27/Lib or equivalent python path

  3. Open swigwin-3.0.12/Lib/python and copy all the files to C:/python27/Lib

  4. Open the swigwin-3.0.12/Lib folder and copy over the typemaps folder to C:/python27/Lib

(Also make sure you have Microsoft Visual C++ Compiler for Python installed)

These steps worked for me.

Multipurpose answered 1/5, 2018 at 14:9 Comment(6)
I also needed to copy the 'typemaps' folder to the C:/python27/Lib folder.Venenose
I copied your .zip link for swig for windows, installed to a directory, added that directory to my environment variables PATH - re-opened a new terminal and ran "pip install PocketSphinx" and it succeeded this time.Beware
how do i fing swig for linuxPhotosphere
You can visit swig.org/download.html to get the latest version of swig for windows.Putupon
check out the correct answer using environment variables https://mcmap.net/q/534281/-installing-pocketsphinx-python-module-command-39-swig-exe-39-failedDactylology
I get multiple errors (1) : Error: Unable to find 'swig.swg' , SWIG\_m2crypto.i(30) : Error: Unable to find 'openssl\opensslv.h' , SWIG\_m2crypto.i(33) : Error: Unable to find 'openssl\safestack.h' and many moreRenatorenaud
P
33
conda install swig
pip install pocketsphinx

I didn't want to do all that setup other people are suggesting so I tried this and it worked. This probably only works if you are using Anaconada though.

Ptosis answered 28/9, 2019 at 8:16 Comment(3)
That worked. If you're a Windows user, make sure to run the Anaconda Prompt as administratorIncubus
I am on Win10 and it says "'conda' is not recognized as an internal or external command, operable program or batch file."Merci
this ought to be the accepted answer imo. less is more.Divine
W
28

Instead of copying Swig files to the Python folder, you can simply add Swig`s location to the environment variables:

  1. Press Ctrl+S
  2. Type env and press Enter
  3. Double click on Path
  4. Add the path-to-Swig to the last blank line
  5. Click OK and restart your PC
Whitmire answered 14/9, 2018 at 9:54 Comment(4)
This is a very nice solution and better then the current accepted answer.Polash
Did you mean 1. [Windows-Key] + S ? and 2. Edit environment variables ? and 3. Press "Environment variables" before your 3 ? And according to superuser.com/questions/130029/refresh-environment-variable you can logout and login again instead of 5. RestartDactylology
I'm the author of the accepted answer and I agree this one is betterMultipurpose
You don't have to restart your PC on most of the cases, just restarting the command line worked here.Boltrope
K
10

You try to install pocketsphinx with pip, that will download and compile this module. It requires some compiling tool like swig.

Another solution is to install a binary version of pocketsphinx. You can download a binary version here. You have to select the correct version with respect to your installation.

To determine which one you have to download, you can run the following commands, that will tell you which version you require and whether you run a 32 or 64 bit python interpreter.

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

Below are some commands that you may enter once you have downloaded the correct version

"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
Keeshakeeshond answered 12/6, 2017 at 19:23 Comment(3)
It worked perfectly. Now the program is recognizing the audio, while the PC is offline.Concepcion
@KrushiRaj And where that downloaded file needs to be put? So that the following command works?Soberminded
Should be in the same directory as the place where you're trying to execute the command. Please refer to the accepted answer to know more.Concepcion
C
6

I was also getting same error, while installing in ubuntu 16.04, I executed following commands:

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

sudo pip install pocketsphinx

source: pocketsphinx-python

Cystotomy answered 12/9, 2018 at 11:33 Comment(0)
S
2

In case you are working on anaconda navigator.
Just go to environment.
Search swig, your package will be displayed. Select the package and click on apply button. It will also give a prompt list of other dependencies, which need to be installed with swig.
So just select all and click on apply button.
All the dependencies will be installed in your root directory of anaconda.

This worked for me, hope it helps.

Salk answered 6/8, 2019 at 13:51 Comment(0)
J
1

There are few set of commands to resolve this. Just execute them:

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
Jyoti answered 29/4, 2019 at 7:19 Comment(0)
L
1

what works for me is installing swing from conda and

conda install swig

if installed search where it is installed

where swig

enter image description here

then add that path to your environment variable

Lafontaine answered 29/9, 2020 at 17:30 Comment(0)
K
0

For mac users getting similar issues, there seems to be a problem with the current pip install framework. I followed this thread and used the solution linked. It doesn't seem like there will be a pip fix anytime soon.

Note you'll have to brew install swig before running the above steps - homebrew install link.

Khartoum answered 31/3, 2021 at 14:49 Comment(0)
C
0
pip install pipwin
python -m pipwin install pocketsphinx

You can also use pipwin to install pocketsphinx.

Coonskin answered 20/1, 2022 at 1:41 Comment(0)
B
0

For a purely pip-based fix (may or not work depending on your exact issue/system):

pip install swig
pip install pocketsphinx
pip freeze > requirements.txt

Fixed the issue simply for me. With pip freeze, you're likely to not have the issue again if cloning the project in another system (since swig will be installed just with pip install -r requirements.txt)

This is the kind of things for which it becomes REALLY worthwhile to look into using virtualenv or similar, instead of polluting (and endlessly re-configuring) your system.

Beker answered 19/7, 2022 at 19:54 Comment(0)
L
0

I know I am late, but what worked for me was to download the pre-built wheel file and install it manually (tested on Windows. I am pretty sure it will only work on Windows).

https://www.lfd.uci.edu/~gohlke/pythonlibs/#pocketsphinx

Just grab the right one (cp39 = python 3.9). When it finishes downloading, navigate to your downloads folder in cmd, and issue the following command:

pip install pocketsphinx-0.1.15-cp39-cp39-win_amd64.whl

NOTE: Change pocketsphinx-0.1.15-cp39-cp39-win_amd64.whl to the name of the whl file you downloaded. I grabbed this one because I use Python 3.9 64bit version.

Ludovico answered 24/7, 2022 at 15:37 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.