Installing pocketsphinx python module: command 'swig.exe' failed
Question:
I’m getting something like this. Can anyone please tell me how to fix this.
C:UserskrushDocumentsML 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:UserskrushAnaconda3python.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('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d C:UserskrushAppDataLocalTemptmp3tyvnl9wpip-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:UserskrushAnaconda3python.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('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:UserskrushAppDataLocalTemppip-x5mxeczy-recordinstall-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:UserskrushAnaconda3python.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('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:UserskrushAppDataLocalTemppip-x5mxeczy-recordinstall-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:UserskrushAppDataLocalTemppip-build-cns2i_wbpocketsphinx
Answers:
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:UserskrushAnaconda3python.exe" --version
"C:UserskrushAnaconda3python.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:UserskrushAnaconda3python.exe" -m pip install pocketsphinx‑0.1.3‑cp35‑cp35m‑win32.whl
"C:UserskrushAnaconda3python.exe" -m pip install pocketsphinx‑0.1.3‑cp36‑cp36m‑win_amd64.whl
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
-
Copy swig.exe to the python installation folder (for ex C:/python27)
-
Open the swigwin-3.0.12/Lib
folder and copy all *.swg
files to the C:/python27/Lib
or equivalent python path
-
Open swigwin-3.0.12/Lib/python
and copy all the files to C:/python27/Lib
-
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.
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
Instead of copying Swig files to the Python folder, you can simply add Swig`s location to the environment variables:
- Press
Ctrl+S
- Type
env
and press Enter
- Double click on
Path
- Add the path-to-Swig to the last blank line
- Click
OK
and restart your PC
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
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.
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.
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.
pip install pipwin
python -m pipwin install pocketsphinx
You can also use pipwin to install pocketsphinx.
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.
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.
I’m getting something like this. Can anyone please tell me how to fix this.
C:UserskrushDocumentsML 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:UserskrushAnaconda3python.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('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d C:UserskrushAppDataLocalTemptmp3tyvnl9wpip-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:UserskrushAnaconda3python.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('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:UserskrushAppDataLocalTemppip-x5mxeczy-recordinstall-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:UserskrushAnaconda3python.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('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:UserskrushAppDataLocalTemppip-x5mxeczy-recordinstall-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:UserskrushAppDataLocalTemppip-build-cns2i_wbpocketsphinx
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:UserskrushAnaconda3python.exe" --version
"C:UserskrushAnaconda3python.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:UserskrushAnaconda3python.exe" -m pip install pocketsphinx‑0.1.3‑cp35‑cp35m‑win32.whl
"C:UserskrushAnaconda3python.exe" -m pip install pocketsphinx‑0.1.3‑cp36‑cp36m‑win_amd64.whl
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
-
Copy swig.exe to the python installation folder (for ex C:/python27)
-
Open the
swigwin-3.0.12/Lib
folder and copy all*.swg
files to theC:/python27/Lib
or equivalent python path -
Open
swigwin-3.0.12/Lib/python
and copy all the files toC:/python27/Lib
-
Open the
swigwin-3.0.12/Lib
folder and copy over thetypemaps
folder toC:/python27/Lib
(Also make sure you have Microsoft Visual C++ Compiler for Python installed)
These steps worked for me.
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
Instead of copying Swig files to the Python folder, you can simply add Swig`s location to the environment variables:
- Press
Ctrl+S
- Type
env
and pressEnter
- Double click on
Path
- Add the path-to-Swig to the last blank line
- Click
OK
and restart your PC
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
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.
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.
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.
pip install pipwin
python -m pipwin install pocketsphinx
You can also use pipwin to install pocketsphinx.
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.
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.