安装pyaudio时,pip在/ usr/local/include中找不到portaudio.h

Xun*_*ian 49 python macos pyaudio

我正在使用mac osx 10.10正如PyAudio主页所说,我使用了安装PyAudio

brew install portaudio 
pip install pyaudio
Run Code Online (Sandbox Code Playgroud)

portaudio的安装似乎很成功,我可以在/ usr/local/include和/ usr/local/lib中找到头文件和库,但是当我尝试安装pyaudio时,它会给我一个错误

src/_portaudiomodule.c:29:10: fatal error: 'portaudio.h' file not found
#include "portaudio.h"
         ^
1 error generated.
error: command 'cc' failed with exit status 1
Run Code Online (Sandbox Code Playgroud)

实际上它在/ usr/local/include中为什么找不到该文件?类似问题的一些答案对我不起作用(比如使用virtualenv,或者手动编译),我想找到一种简单的方法来解决这个问题.

fuk*_*ama 118

由于pyAudio具有portAudio依赖性,您首先必须安装portaudio.

brew install portaudio
Run Code Online (Sandbox Code Playgroud)

然后尝试:pip install pyAudio.如果安装后问题仍然存在portAudio,则可以指定编译器能够找到源程序的目录路径(例如:) portaudio.h.由于标题应该在/usr/local/include目录中:

pip install --global-option='build_ext' --global-option='-I/usr/local/include' --global-option='-L/usr/local/lib' pyaudio
Run Code Online (Sandbox Code Playgroud)

  • 对于那些拥有非默认自制目录的人来说,这里有一个更强大的片段, `pip install --global-option='build_ext' --global-option="-I$(brew --prefix)/include" --全局选项 =“-L$(brew --prefix)/lib” pyaudio` (7认同)
  • 这对我有用,但我不得不在我的机器上使用sudo(El Capitan,从Yosemite升级) (3认同)
  • 这似乎有效,但为什么呢?/ usr/local目录不应该是默认目录吗?默认情况下,build_ext似乎运行(并且无法查找内容). (2认同)
  • 这对我也有用。看来您手动指定了查找标头的路径,有什么方法可以将其配置为默认值吗? (2认同)
  • 对于任何使用 macports 的人来说, /opt/local/include 和 /opt/local/lib 对我有用 (2认同)
  • 对我来说这有效:/sf/answers/5133698531/ (2认同)

wat*_*ake 22

我需要执行以下操作才能在 Debian 上安装 PortAudio

sudo apt install portaudio19-dev
Run Code Online (Sandbox Code Playgroud)

之前我也apt install试过 python3-portaudio,虽然没效果。我不确定这是否也有所贡献。

  • 它实际上在安装“portaudio19-dev”后起作用了。谢谢你! (5认同)

Rob*_*ews 9

在Ubuntu版本上:

sudo apt-get install python-pyaudio
Run Code Online (Sandbox Code Playgroud)

对于Python3:

sudo apt-get install python3-pyaudio
Run Code Online (Sandbox Code Playgroud)


小智 7

在 Centos 上:

yum install -y portaudio portaudio-devel && pip install pyaudio
Run Code Online (Sandbox Code Playgroud)


小智 7

首先你可以使用 brew 来安装 portaudio 。

酿造安装portaudio

然后尝试找到portaudio路径 sudo find / -name "portaudio.h"

就我而言,它是/usr/local/Cellar/portaudio/19.6.0/include.

运行以下命令安装 pyaudio

pip install --global-option='build_ext' --global-option='-I/usr/local/Cellar/portaudio/19.6.0/include' --global-option='-L/usr/local/Cellar /portaudio/19.6.0/lib' pyaudio

  • 您还可以使用“brew info portaudio”获取“portaudio/xxx/include”的路径,而不是“sudo find”,它应该打印出类似“/usr/local/Cellar/portaudio/19.7.0”的路径。然后只需添加`/include`即可。 (3认同)

cha*_*nya 6

您必须先安装portaudio然后链接该文件.只有这样你才能找到那个头文件(即portaudio.h).使用HomeBrew程序使用以下命令在mac中安装portaudio .

brew install portaudio
brew link portaudio
pip install pyaudio
Run Code Online (Sandbox Code Playgroud)

  • 这实际上对我有用.但是,不需要链接. (3认同)

dan*_*ero 6

在Raspbian:

sudo apt-get install python-pyaudio
Run Code Online (Sandbox Code Playgroud)


Par*_*der 5

仅供使用 MacPorts 而不是 Homebrew 的人的记录:

$ [sudo] port install portaudio
$ pip install pyaudio --global-option="build_ext"  --global-option="-I/opt/local/include" --global-option="-L/opt/local/lib"
Run Code Online (Sandbox Code Playgroud)


And*_*dyP 5

为 @fukudama 的代码片段添加一点稳健性(如果是非默认自制目录),

brew install portaudio
pip install --global-option='build_ext' --global-option="-I$(brew --prefix)/include" --global-option="-L$(brew --prefix)/lib" pyaudio
Run Code Online (Sandbox Code Playgroud)