2013-01-24 3 views
4

У меня возникли проблемы с установкой pyaudio правильно. У меня есть virtualenv, настроенный для проекта. Я первый попытался установить Portaudio:Pyaudio, portaudio и mac 10.7.5

sudo port install portaudio 

, которая возвращает:

---> Cleaning portaudio 
---> Scanning binaries for linking errors: 100.0% 
---> No broken files found. 

Я предполагаю, что означает, что он бежал отлично. Тогда я попробовал:

pip install pyaudio 

Который возвращает:

Downloading/unpacking pyaudio 
Running setup.py egg_info for package pyaudio 

warning: no files found matching '*.c' under directory 'test' 
Installing collected packages: pyaudio 
Running setup.py install for pyaudio 
building '_portaudio' extension 
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch x86_64 -g -O2 -DNDEBUG -g -O3 -DMACOSX=1 -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c src/_portaudiomodule.c -o build/temp.macosx-10.6-intel-2.7/src/_portaudiomodule.o -fno-strict-aliasing 
src/_portaudiomodule.c:29:23: error: portaudio.h: No such file or directory 
src/_portaudiomodule.c:33:25: error: pa_mac_core.h: No such file or directory 
... 

Это первое предупреждение о проблеме? Я немного удивлен, что он говорит, что нет файла или каталога для portaudio.h. Должен ли я сделать что-то особенное, чтобы включить установку порта Mac Mac?

Цените любую помощь!

+0

Вы посмотрели на этот ответ: http://stackoverflow.com/questions/2893193/building-portaudio-and-pyaudio-on-mac-running-snow-leopard-arch-issues Это то, что сработало для меня. – tom10

+0

Я действительно видел этот ответ.Я не был уверен, что делать с макетом каталога, который он требовал. Куда должен идти этот каталог? Я попытался построить из источника и получил всевозможные ошибки. Я попробую еще раз в этот уик-энд с этим решением. –

+0

Если вы находитесь в виртуальном режиме (или используете virtualenvwrapper), pyaudio не будет находить portaudio во время установки. [Этот ответ] (http://stackoverflow.com/a/10290595/1386245) очень помог мне. – Rohmer

ответ

1

Следуя моему комментарию выше, это похоже на ответ this, но поскольку OP не был ясен, я попытаюсь снова. (Это в основном просто вырезание и вставка из некоторых заметок, которые я сделал себе, когда я это делал.)

  1. Это сборка для 32-битных.
  2. Загрузить pyaudio и portaudio (я использовал 0.2.4, v19).
  3. кд Portaudio
  4. сделать чистую
  5. CC = "НКУ -arch i386" ./configure -enable неэлектризующегося
  6. сделать
  7. Sudo сделать установку (возможно, не требуется, если вы статически ссылка на него).
  8. шаг Portaudio в каталог PyAudio, то есть:
    1. кд .. (из Portaudio)
    2. мв Portaudio PyAudio/Portaudio-v19 (примечание нужна V19 здесь)
  9. кд в PyAudio и запуск:
    1. убедитесь, что вы находитесь в виртуальной среде, т.е. source bin/activate
    2. питон setup.py строить -static-ли пк
    3. питон setup.py установить
+0

Спасибо! У меня не было времени для работы над этим проектом в эти выходные, но я вернусь к нему, когда у меня будет время снова сыграть с ним. –

+0

Я попробовал ваше решение, я могу перейти к шагу 6. ​​Когда я его вернулю: «{standard input}: 5: плохое имя регистра'% r13 '"(около 40 подобных ошибок), то" make: *** [ src/common/pa_allocation.lo] Ошибка 1 «Я не знаю, что с этим делать ... должен ли я открыть новый вопрос? –

3

Как насчет следующие:

$ sudo port install py27-pyaudio 
Warning: port definitions are more than two weeks old, consider using selfupdate 
---> Computing dependencies for py27-pyaudio 
---> Fetching archive for py27-pyaudio 
---> Attempting to fetch py27-pyaudio-0.2.7_0.darwin_12.x86_64.tbz2 from http://lil.fr.packages.macports.org/py27-pyaudio 
---> Attempting to fetch py27-pyaudio-0.2.7_0.darwin_12.x86_64.tbz2.rmd160 from http://lil.fr.packages.macports.org/py27-pyaudio 
---> Installing py27-pyaudio @0.2.7_0 
---> Activating py27-pyaudio @0.2.7_0 
---> Cleaning py27-pyaudio 
---> Updating database of binaries: 100.0% 
---> Scanning binaries for linking errors: 100.0% 
---> No broken files found. 
$ python -c "import pyaudio" 
$ 

Это работает для меня как минимум.

1

это установит Portaudio, который требуется для pyaudio:

sudo port install portaudio 

рядом, искать соответствующий pyaudio macport для вашей версии питона

port search pyaudio 

предположим, что вы используете python27, установите pyaudio в качестве такая:

sudo port install py27-pyaudio 

Ссылка:

How do I install PyAudio in virtualenv on Mac OS X 10.7

1

Создание виртуального окр, активировать его:

virtualenv env 
env/bin/activate 

Скачать PyAudio (последний в то время):

wget -c http://people.csail.mit.edu/hubert/pyaudio/packages/pyaudio-0.2.8.tar.gz 
tar zxf pyaudio-0.2.8.tar.gz 
cd PyAudio-0.2.8/ 

Распакуйте Portaudio внутри папки PyAudio, переименуйте его в portaudio- v19 и построить его:

wget -c http://www.portaudio.com/archives/pa_stable_v19_20140130.tgz 
tar zxf pa_stable_v19_20140130.tgz 
mv portaudio portaudio-v19 
cd portaudio-v19 
./configure 
make 
cd ../ 

Назад к директории PyAudio:

export CFLAGS="-I `pwd`/portaudio-v19/include/ -L `pwd`/portaudio-v19/lib/.libs/" 
python setup.py build --static-link 
python setup.py install 

Все это!

+0

Работал для меня на OS X Sierra –

4
$ brew install portaudio 
$ pip install pyaudio 

Некоторые недостающие библиотеки и такие, которые предоставляет portaudio. Работы для Python 2.7 (не уверены в других версиях)

0

Проблема в том, что сценарий установки pyaudio (setup.py) предполагает, что все необходимые заголовки находятся в /usr/include. Вот почему он работает с HomeBrew, а не с MacPorts, который обычно (и чисто) ставит все под /opt/local.

Устроители PyAudio полагаются на HomeBrew, и теперь нет комбинации опций, которая позволяет определять, где искать заголовки. На момент написания setup.pysource code поддерживают только значения по умолчанию для Mac OS X.

Для работы с MacPorts, это громоздко, но достаточно, чтобы создать две ссылки для компиляции:

port install portaudio 
sudo ln -s /opt/local/include/portaudio.h /usr/include 
sudo ln -s /opt/local/include/pa_mac_core.h /usr/include 
pip install --user pyaudio # Should now compile fine. 

Ссылка должна, вероятно, удаляется после завершения установки.

Протестировано на Mac OS X 10.10 с Python 2.7, установленным с MacPorts.

1

Важным моментом является то эта команда:

export CFLAGS="-I `pwd`/portaudio-v19/include/ -L `pwd`/portaudio-v19/lib/.libs/" 

, который избегает не такой ошибки файла.

Это решило мою проблему, спасибо большое @tuxdna.

 Смежные вопросы

  • Нет связанных вопросов^_^