pyaudio installation on mac (python 3)

JasonShao picture JasonShao · Nov 22, 2015 · Viewed 40.5k times · Source

I first tried:

pip install pyaudio

but I was told that

-bash: pip: command not found

Then I tried:

pip3 install pyaudio

then i got:

src/_portaudiomodule.c:29:10: fatal error: 'portaudio.h' file not found

#include "portaudio.h"

         ^

1 error generated.

error: command '/usr/bin/clang' failed with exit status 1

----------------------------------------
Command "/Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4 -c "import setuptools, tokenize;__file__='/private/var/folders/77/gz1txkwj2z925vk6jrkx3wp80000gn/T/pip-build-43z_qk7o/pyaudio/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/77/gz1txkwj2z925vk6jrkx3wp80000gn/T/pip-tkf78ih4-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/var/folders/77/gz1txkwj2z925vk6jrkx3wp80000gn/T/pip-build-43z_qk7o/pyaudio

but I had installed portaudio

brew install portaudio

Warning: portaudio-19.20140130 already installed

So what can I do. Thanks a lot, it's my first time using pyaudio, so.......

:)

Answer

user5070125 picture user5070125 · Nov 22, 2015

I'm assuming you are on a Mac. This is a simple issue to fix.

First install Xcode. Then restart your computer. Afterwards run the commands in sequence,

xcode-select --install
brew remove portaudio
brew install portaudio
pip3 install pyaudio

So to clarify, Xcode is installed through the App Store. Xcode command line tools are required for some installations, for others they are not. I'm including it here just to be on the safe side. You also probably do not need to uninstall and reinstall the formula via Homebrew, I did that to ensure that there would be absolutely no problems.

Edit: I have been told Homebrew requires Xcode. So just run the

xcode-select --install

command to be able to use Clang. Also what version of Mac are you on?