2016-02-29 1 views
10

Je suis en train d'installer pyaudio avec pip:Installation pyaudio avec pépin dans un virtualenv

pip install pyaudio 

Dans un virtualenv mais je reçois une erreur:

error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 

sortie complète:

Collecting pyaudio 
    Using cached PyAudio-0.2.9.tar.gz 
Building wheels for collected packages: pyaudio 
    Running setup.py bdist_wheel for pyaudio ... error 
    Complete output from command /home/mertyildiran/Downloads/VirtualEnvironment/vir1/Cerebrum/ENV/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-GCltlv/pyaudio/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpyR6J73pip-wheel- --python-tag cp27: 
    running bdist_wheel 
    running build 
    running build_py 
    creating build 
    creating build/lib.linux-x86_64-2.7 
    copying src/pyaudio.py -> build/lib.linux-x86_64-2.7 
    running build_ext 
    building '_portaudio' extension 
    creating build/temp.linux-x86_64-2.7 
    creating build/temp.linux-x86_64-2.7/src 
    x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/_portaudiomodule.c -o build/temp.linux-x86_64-2.7/src/_portaudiomodule.o 
    src/_portaudiomodule.c:29:23: fatal error: portaudio.h: No such file or directory 
    #include "portaudio.h" 
         ^
    compilation terminated. 
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 

    ---------------------------------------- 
    Failed building wheel for pyaudio 
    Running setup.py clean for pyaudio 
Failed to build pyaudio 
Installing collected packages: pyaudio 
    Running setup.py install for pyaudio ... error 
    Complete output from command /home/mertyildiran/Downloads/VirtualEnvironment/vir1/Cerebrum/ENV/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-GCltlv/pyaudio/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-icMIUV-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/mertyildiran/Downloads/VirtualEnvironment/vir1/Cerebrum/ENV/include/site/python2.7/pyaudio: 
    running install 
    running build 
    running build_py 
    creating build 
    creating build/lib.linux-x86_64-2.7 
    copying src/pyaudio.py -> build/lib.linux-x86_64-2.7 
    running build_ext 
    building '_portaudio' extension 
    creating build/temp.linux-x86_64-2.7 
    creating build/temp.linux-x86_64-2.7/src 
    x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/_portaudiomodule.c -o build/temp.linux-x86_64-2.7/src/_portaudiomodule.o 
    src/_portaudiomodule.c:29:23: fatal error: portaudio.h: No such file or directory 
    #include "portaudio.h" 
         ^
    compilation terminated. 
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 

    ---------------------------------------- 
Command "/home/mertyildiran/Downloads/VirtualEnvironment/vir1/Cerebrum/ENV/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-GCltlv/pyaudio/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-icMIUV-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/mertyildiran/Downloads/VirtualEnvironment/vir1/Cerebrum/ENV/include/site/python2.7/pyaudio" failed with error code 1 in /tmp/pip-build-GCltlv/pyaudio 

Qu'est-ce que je fais mal? Je suis nouveau dans virtualenvs.

* Je suis capable d'installer d'autres paquets. Je fais face à une erreur seulement pour le paquet pyaudio.

Par ailleurs, je suis dans l'environnement:

(ENV) [email protected]:~/Downloads/VirtualEnvironment/vir1/MyProject$ 
+1

si vous êtes sur ubuntu 'sudo apt-get installer libasound-dev' - http://portaudio.com/docs/v19-doxydocs/compile_linux.html – dm03514

+0

Je suis dans le virtualenv probablement ce paquet n'est pas installé sur mon virtualenv. Comment puis-je installer ce paquet sur virtualenv? Normalement, je suis capable d'installer pyaudio à partir de pip. Mais je suis dans virtualenv. – mertyildiran

+0

@ dm03514 D'autre part, est-il possible d'installer uniquement en utilisant pip. Parce que je prépare un paquet pour la distribution. – mertyildiran

Répondre

9

Certains paquets ont besoin du soutien de logiciels non-Python, comme les bibliothèques partagées. Ces ne peuvent pas être installés via pip (ils ne sont pas des paquets Python!). Vous installez généralement ces sur l'hôte en utilisant le gestionnaire de paquets de votre hôte (apt-get ou yum ou dnf, etc ...), ou vous utilisez quelque chose comme Docker pour encapsuler à la fois les dépendances et votre application.

Dans votre cas, pyaudio nécessite un certain nombre de bibliothèques, y compris au moins portaudio. Vous devrez installer les paquets de développement appropriés sur votre système, comme suggéré dans les commentaires sur votre question.

+0

Pourquoi il y a un paquet pour pyaudio alors? https://pypi.python.org/pypi/PyAudio – mertyildiran

+0

Ou pouvez-vous me proposer un paquet différent avec la même fonctionnalité et l'installation pip? – mertyildiran

+0

Presque tous les paquets qui fournissent un support audio vont nécessiter des bibliothèques tierces supplémentaires. Il y a un paquet pour PyAudio parce que c'est un paquet Python. La bibliothèque 'portaudio' dont elle a besoin n'est pas. – larsks

13

Cela a fonctionné pour moi, j'ai eu le même problème:

si vous souhaitez installer PyAudio dans un virtualenv, installez les en-têtes de développement portaudio de APT, puis PyAudio:

sudo apt-get install portaudio19-dev 
pip install --allow-unverified=pyaudio pyaudio 

https://pyspotify.mopidy.com/en/latest/api/sink/

+0

ça a fonctionné parfaitement. – ShivaGuntuku

+0

cela a fonctionné .... merci beaucoup ... – vishwakarma09

+0

Cela a fonctionné, n'a même pas besoin de faire le tag --allow-unverified –