2013-01-24 3 views
4

J'ai des problèmes pour installer pyaudio correctement. J'ai un virtualenv mis en place pour le projet. J'ai d'abord essayé d'installer portaudio:Pyaudio, portaudio et mac 10.7.5

sudo port install portaudio 

qui retourne:

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

Je suppose que cela signifie qu'il a fonctionné très bien. Alors j'ai essayé:

pip install pyaudio 

qui retourne:

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 
... 

Est-ce que le premier avertissement d'un problème? Je suis un peu surpris qu'il ne dise aucun fichier ou répertoire pour portaudio.h. Dois-je faire quelque chose de spécial pour activer l'installation de mon port macport audio?

Appréciez toute aide!

+0

Avez-vous regardé cette réponse SO: http://stackoverflow.com/questions/2893193/building-portaudio-and-pyaudio-on-mac-running-snow-leopard-arch-issues C'est ce qui a fonctionné pour moi. – tom10

+0

J'ai vu cette réponse.Je ne savais pas quoi faire de la mise en page du répertoire dont il avait besoin. Où devrait aller ce répertoire? J'ai essayé de construire à partir de la source et j'ai eu toutes sortes d'erreurs. Je vais essayer à nouveau ce week-end avec cette solution. –

+0

Si vous êtes dans un virtualenv (ou si vous utilisez virtualenvwrapper), pyaudio ne trouvera pas portaudio pendant l'installation. [Cette réponse] (http://stackoverflow.com/a/10290595/1386245) m'a énormément aidé. – Rohmer

Répondre

1

Suite à mon commentaire ci-dessus, ceci est similaire à this réponse, mais puisque OP n'était pas clair avec elle, je vais essayer à nouveau. (Il s'agit simplement d'un copier-coller de quelques notes que je me suis fait quand je faisais cela.)

  1. Ceci est une construction pour 32 bits.
  2. Télécharger pyaudio, et portaudio (j'ai utilisé 0.2.4, v19).
  3. cd portaudio
  4. make clean
  5. CC = "gcc -arch i386" ./configure
  6. --enable-statique font
  7. make install sudo (peut-être pas nécessaire si vous liez statiquement à elle).
  8. portaudio move dans le répertoire PyAudio, qui est:
    1. cd .. (sur portaudio)
    2. mv portaudio PyAudio/portaudio-V19 (note besoin du V19 ici)
  9. cd en PyAudio et exécuter:
    1. vous assurer que vous êtes dans l'environnement virtuel, à savoir source bin/activate
    2. python setup.py construire -static-li nk
    3. python setup.py install
+0

Merci! Je n'ai pas eu le temps de travailler sur ce projet ce week-end, mais j'y reviendrai quand j'aurai le temps de jouer à nouveau avec. –

+0

J'ai essayé votre solution, je peux aller jusqu'à l'étape 6. Quand je la fais revenir: "{entrée standard}: 5: mauvais nom de registre '% r13'" (environ 40 erreurs similaires) puis "make: *** [ src/common/pa_allocation.lo] Erreur 1 "Je ne sais pas quoi en faire ... dois-je ouvrir une nouvelle question? –

3

Que diriez-vous suivant:

$ 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" 
$ 

Cela fonctionne pour moi au moins.

1

cela installera portaudio qui est nécessaire pour pyaudio:

sudo port install portaudio 

suivant, recherchez le MacPort de pyaudio approprié pour votre version de python

port search pyaudio 

Supposons que vous utilisez python27, installez pyaudio comme tels:

sudo port install py27-pyaudio 

Références:

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

1

Créer un env virtuel, activer:

virtualenv env 
env/bin/activate 

Télécharger PyAudio (dernier à l'époque):

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/ 

Décompressez portaudio l'intérieur du dossier PyAudio, renomme à portaudio- v19 et le construire:

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 ../ 

Retour au répertoire PyAudio:

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

C'est tout!

+0

A travaillé pour moi sur OS X Sierra –

4
$ brew install portaudio 
$ pip install pyaudio 

Quelques bibliothèques manquantes et telles que portaudio fournit. Fonctionne pour Python 2.7 (pas sûr sur d'autres versions)

0

Le problème est que le script d'installation pyaudio (setup.py) suppose que tous les en-têtes nécessaires sont dans /usr/include. Voilà pourquoi cela fonctionne avec Homebrew, et non MacPorts, qui en général (et proprement) met tout sous /opt/local.

mainteneurs PyAudio se sont appuyés sur Homebrew, et il n'y a pas de combinaison d'options en ce moment qui permet d'épellation où trouver les en-têtes. Au moment de l'écriture, la setup.pysource code prend en charge uniquement les valeurs par défaut pour Mac OS X.

Pour travailler avec MacPorts, il est lourd, mais assez pour créer deux liens pour la compilation:

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. 

Les liens devraient probablement supprimé une fois l'installation terminée.

testé sur Mac OS X avec 10,10 Python 2.7 installé avec MacPorts.

1

Le point crucial est cette commande:

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

qui évite aucune erreur de fichier.

Ce résolu mon problème, merci beaucoup à @tuxdna.

Questions connexes