在虚拟环境中使用pip安装pyaudio

21

我正在尝试使用pip安装pyaudio:

pip install pyaudio
在虚拟环境中,但我遇到了一个错误:
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

完整输出:

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

我做错了什么?我是虚拟环境的新手。

*我能安装其他软件包,只有pyaudio软件包出现错误。

顺便提一下,我在这个环境中:

(ENV) mertyildiran@Corsair:~/Downloads/VirtualEnvironment/vir1/MyProject$

1
如果您使用的是Ubuntu系统,请执行以下命令进行安装:sudo apt-get install libasound-dev。具体信息请参考http://portaudio.com/docs/v19-doxydocs/compile_linux.html。 - dm03514
我在虚拟环境中,可能这个包没有安装到我的虚拟环境中。如何将这个包安装到虚拟环境中?通常我可以从pip安装pyaudio。但是我现在在虚拟环境中。 - mertyildiran
另一方面,是否有一种只使用pip进行安装的方法。因为我正在准备一个分发包。 - mertyildiran
5个回答

38

这对我有用,我遇到了同样的问题:

如果你想在虚拟环境中安装PyAudio,请先从APT安装PortAudio开发头文件,然后再安装PyAudio:

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

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

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

4
这个方法很有效,甚至不需要使用“--allow-unverified”标签。 - Simon Unsworth
非常感谢 @Alejandro。 - Abhishek Raj
只需输入第一个安装命令,它就可以在我的Ubuntu 18.04上运行! - albert yu

15
一些软件包需要非Python软件(例如共享库)的支持。这些软件无法通过pip进行安装(它们不是Python软件包!)。通常,您可以在主机上使用主机的软件包管理器(如apt-get、yum或dnf等)安装这些软件,或者使用Docker封装依赖项和应用程序。
在您的情况下,pyaudio需要许多库,包括至少portaudio。您需要在系统上安装适当的开发软件包,如在您的问题评论中建议的那样。

或者您能否建议我一个具有相同功能和pip安装的不同软件包? - mertyildiran
几乎所有提供音频支持的软件包都需要额外的第三方库。因为 PyAudio 是一个 Python 软件包,所以有一个针对它的软件包。但是它需要的 portaudio 库并非如此。 - larsks
好的,最后一个问题:在几乎每个Ubuntu发行版中,是不是pyaudio或通过pip安装pyaudio所需的依赖都已默认安装好了呢?如果是的话我就会忽略这个问题。 - mertyildiran
13
portaudio库在Ubuntu上是可用的,但可能需要显式安装(apt-get install portaudio19-dev)。您也可以直接安装pyaudio包(apt-get install python-pyaudio),这将为您处理所有依赖项。 - larsks

5
以下步骤对我有用 :) 请仔细阅读并尝试
1  sudo apt-get install libasound-dev
2  sudo apt-get install portaudio19-dev
3  pip install pyaudio --user

如果(--user无法正常工作),则尝试使用python3-pyaudio。

sudo apt-get install python3-pyaudio

0
在新的Python 3.0中,可以使用以下命令在Windows上安装pyaudio: pip3 install pyaudio。

0

如果您想在Windows虚拟环境中安装pyaudio,首先需要在[https://www.lfd.uci.edu/~gohlke/pythonlibs/]这里下载PyAudio-0.2.11-cp37-cp37m-win_amd64.whl文件,然后打开命令提示符并转到您下载的文件所在的路径,输入pip install PyAudio-0.2.11-cp37-cp37m-win_amd64.whl。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接