Trying to run python app that uses pyaudio. Using virtualenv and installations are working. However when running it can't find portaudio. But the _portaudio.so file exists. Any suggestions???
(venv) kidkic@pi-mirror1:~/audio $ jasper/jasper.py
Could not import the PyAudio C module '_portaudio'.
Traceback (most recent call last):
File "jasper/jasper.py", line 31, in <module>
from client.mic import Mic
File "/home/kidkic/audio/jasper/client/mic.py", line 9, in <module>
import pyaudio
File "/home/kidkic/audio/venv/local/lib/python2.7/site-packages/pyaudio.py", line 116, in <module>
import _portaudio as pa
ImportError: /home/kidkic/audio/venv/local/lib/python2.7/site-packages/_portaudio.so: undefined symbol: Pa_GetStreamReadAvailable
# CHECKING THAT THE FILE EXISTS (a binary file)
(venv) kidkic@pi-mirror1:~/audio $ ls venv/local/lib/python2.7/site-packages/_*
venv/local/lib/python2.7/site-packages/_portaudio.so
The issue isn't that it can't find the library, but that the library is missing a function that is needed. (source code). I ran into the same problem, and believe the issue stems from building with the wrong version of
portaudio-dev
.What you need to do:
sudo apt-get purge --remove python-pyaudio
if you have it (This is version 0.2.8)./configure
make
make install
portaudio19-dev
python-all-dev
(python3-all-dev
for Python 3)sudo pip install pyaudio
After that, I was able to use pyaudio.
For linux users you may get something like this after you install
portaudio
So, I would like to add the below commands as step number 4, following the steps in above answer by Wehrdo.
sudo ldconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/custom/path/" >> ~/.bashrc