【问题标题】:when installing pyaudio, pip cannot find portaudio.h in /usr/local/include安装 pyaudio 时,pip 在 /usr/local/include 中找不到 portaudio.h
【发布时间】:2016-02-04 10:56:10
【问题描述】:

我使用的是 mac osx 10.10 正如 PyAudio Homepage 所说,我使用安装 PyAudio

brew install portaudio 
pip install pyaudio

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

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

【问题讨论】:

    标签: python macos pyaudio


    【解决方案1】:

    为来自@fukudama 的 sn-p 添加一点稳健性(在非默认自制目录的情况下),

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

    【讨论】:

      【解决方案2】:

      Termux(这对我有用):

      1. pkg install python
      2. bash -c "$(curl -fsSL https://its-pointless.github.io/setup-pointless-repo.sh)"
      3. pkg install portaudio
      4. pip install pyaudio

      来源: pyaudio installing #6235

      【讨论】:

      • 正确:pkg install portaudio ...不是 portudio(无法编辑)
      • 感谢您的收获!
      【解决方案3】:

      首先,您可以使用 Homebrew 安装 portaudio。

      brew 安装 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

      【讨论】:

      • 除了sudo find,您还可以使用brew info portaudio 获取到portaudio/x.x.x/include 的路径,它应该会打印出类似/usr/local/Cellar/portaudio/19.7.0 的路径。然后就是添加/include.
      【解决方案4】:

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

      sudo apt install portaudio19-dev
      

      在那之前我也apt install'd python3-portaudio,虽然没有用。我不确定这是否也有贡献。

      【讨论】:

      • 在安装portaudio19-dev 后它确实有效。谢谢!
      【解决方案5】:

      如果您使用 anaconda/miniconda 来管理您的 python 环境,那么

      conda install pyaudio

      pyaudio同时安装portaudio

      The following NEW packages will be INSTALLED:
      
        portaudio          pkgs/main/osx-64::portaudio-19.6.0-h647c56a_4
        pyaudio            pkgs/main/osx-64::pyaudio-0.2.11-py37h1de35cc_2
      

      【讨论】:

        【解决方案6】:

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

        brew install portaudio
        brew link portaudio
        pip install pyaudio
        

        如果您是管理员,则不需要 sudo。我们应该避免使用 sudo,因为它会破坏很多权限。

        【讨论】:

        • 这实际上对我有用。但是,不需要链接。
        • 我使用的是 OS X El Capitan,版本 10.11.5,这也适用于我
        【解决方案7】:

        在 Ubuntu 构建上:

        sudo apt-get install python-pyaudio
        

        对于 Python3:

        sudo apt-get install python3-pyaudio
        

        【讨论】:

          【解决方案8】:

          在 Raspbian 上:

          sudo apt-get install python-pyaudio
          

          【讨论】:

          • 在 raspbian 上使用 python-env 或 conda envs:sudo apt install portaudio19-dev & pip install pyaudio
          【解决方案9】:

          仅用于记录使用 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"
          

          【讨论】:

          • $(brew --prefix) 不适用于没有 Homebrew 的用户。这个答案专门针对那些使用 MacPorts 而不是 Homebrew 的人。
          【解决方案10】:

          在 Centos 上:

          yum install -y portaudio portaudio-devel && pip install pyaudio
          

          【讨论】:

          • 没有包portaudioportaudio-devel
          【解决方案11】:

          由于pyAudioportAudio 作为依赖项,您首先必须安装portaudio。

          brew install portaudio
          

          然后试试: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
          

          【讨论】:

          • PyAudio 的版本是 0.2.9。
          • 这似乎可行,但为什么呢? /usr/local 目录不应该是默认目录吗? build_ext 似乎默认运行(并且找不到东西)。
          • 它也适用于我。您似乎指定了手动查找标头的路径,有没有办法将其配置为默认值?
          • 这对我有用,但我必须在我的机器上使用 sudo(El Capitan,从 Yosemite 升级)
          • 对于使用 macports 的任何人,/opt/local/include 和 /opt/local/lib 都为我工作
          【解决方案12】:

          对于 10.10.5 上的我来说,路径位于 /opt/local 下。我必须将 /opt/local/bin 添加到我的 /etc/paths 文件中。有效的命令行是

          sudo pip install --global-option='build_ext' --global-option='-I/opt/local/include' --global-option='-L/opt/local/lib' pyaudio

          【讨论】:

            猜你喜欢
            • 2015-05-06
            • 2021-05-14
            • 2022-06-20
            • 1970-01-01
            • 1970-01-01
            • 2017-06-05
            • 2013-12-05
            • 1970-01-01
            相关资源
            最近更新 更多