5

我无法正确安装 pyaudio。我为该项目设置了一个 virtualenv。我首先尝试安装portaudio:

sudo port install portaudio

返回:

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

我认为这意味着它运行良好。然后我尝试了:

pip install pyaudio

返回:

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

第一个警告有问题吗?我有点惊讶它说 portaudio.h 没有文件或目录。我必须做一些特别的事情来启用我的端口音频 macport 安装吗?

感谢任何帮助!

4

10 回答 10

6
$ brew install portaudio
$ pip install pyaudio

portaudio 提供的一些缺少的库等。适用于 Python 2.7(不确定其他版本)

于 2016-04-18T04:42:42.407 回答
3

以下情况如何:

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

这至少对我有用。

于 2013-05-28T12:07:24.647 回答
1

根据我上面的评论,这与答案类似,但由于 OP 不清楚,我将再试一次。(这基本上只是我在做这件事时给自己做的一些笔记的剪切和粘贴。)

  1. 这是针对 32 位的构建。
  2. 下载 pyaudio 和 portaudio(我用的是 0.2.4,v19)。
  3. cd portaudio
  4. 打扫干净
  5. CC="gcc -arch i386" ./configure -enable-static
  6. 制作
  7. sudo make install (如果你静态链接到它可能不需要)。
  8. 将 portaudio 移到 PyAudio 目录下,即:
    1. cd ..(出portaudio)
    2. mv portaudio PyAudio/portaudio-v19(注意这里需要 v19)
  9. cd 进入 PyAudio 并运行:
    1. 确保您在虚拟环境中,即source bin/activate
    2. python setup.py build --static-link
    3. python setup.py 安装
于 2013-01-25T19:47:48.270 回答
1

创建一个虚拟环境,激活它:

virtualenv env
env/bin/activate

下载 PyAudio(当时最新):

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/

在 PyAudio 文件夹中解压 portaudio,将其重命名为 portaudio-v19 并构建它:

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

返回 PyAudio 目录:

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

就这样!

于 2014-12-03T07:10:10.563 回答
1

这将安装 pyaudio 所需的 portaudio:

sudo port install portaudio

接下来,为您的 python 版本寻找合适的 pyaudio macport

port search pyaudio

假设您使用的是 python27,请按如下方式安装 pyaudio:

sudo port install py27-pyaudio

参考:

如何在 Mac OS X 10.7 上的 virtualenv 中安装 PyAudio

于 2013-09-20T16:07:44.300 回答
1

您可以使用 $ sudo port install portaudio 安装 portaudio

您可以使用来自http://people.csail.mit.edu/hubert/pyaudio/的 mac 安装程序安装 pyaduio

于 2013-02-06T23:20:57.620 回答
1

关键是这个命令:</p>

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

这避免了没有这样的文件错误。

这解决了我的问题,非常感谢@tuxdna。

于 2017-04-20T03:52:57.283 回答
0

我遇到了同样的问题。对我来说,我从portaudio官方网站下载了源代码。

编译安装后,将头文件pa_mac_core.h从复制<source code folder>/include/usr/local/include. 问题终于解决了。

于 2021-08-05T08:54:33.677 回答
0

问题是pyaudio安装脚本 ( setup.py) 假定所有必要的标头都在/usr/include. 这就是为什么它可以与 HomeBrew 一起使用,而不是 MacPorts,后者通常(并且干净地)将所有内容放在/opt/local.

PyAudio 维护者依赖于 HomeBrew,目前没有选项组合可以说明在哪里可以找到标头。在撰写本文时,setup.py 源代码仅支持 Mac OS X 的默认值。

要使用 MacPorts,虽然很麻烦,但创建两个链接进行编译就足够了:

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.

安装结束后可能应该删除这些链接。

在安装了 MacPorts 的 Python 2.7 的 Mac OS X 10.10 上进行了测试。

于 2016-05-17T04:12:09.360 回答
0

我最近需要这个,因为我想使用 Google Cloud API 从麦克风转录音频。我的 Mac 中安装了 Python 3.7。

i386 支持在最近的 OSx 版本中已弃用,因此解决此问题需要修改配置文件。

  1. 下载portaudio源代码http://www.portaudio.com/download.html
  2. 下载MacOSX10.12.sdk https://github.com/phracker/MacOSX-SDKs/releases并复制到/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
  3. 将此行添加到 portaudio 配置文件中,以包含 MacOSX10.13.sdk 和 MacOSX10.14.sdk,这样它就不会失败

          elif xcodebuild -version -sdk macosx10.13 Path >/dev/null 2>&1 ; then
             mac_version_min="-mmacosx-version-min=10.4"
             mac_sysroot="-isysroot `xcodebuild -version -sdk macosx10.13 Path`"
          elif xcodebuild -version -sdk macosx10.14 Path >/dev/null 2>&1 ; then
             mac_version_min="-mmacosx-version-min=10.4"
             mac_sysroot="-isysroot `xcodebuild -version -sdk macosx10.14 Path`"              
          else
             as_fn_error $? "Could not find 10.5 to 10.14 SDK." "$LINENO" 5
          fi
    
  4. 从您的 portaudio 文件夹中

    ./configure && make
    sudo make install
    
  5. 下载 PyAudio 源码(无轮)https://pypi.org/project/PyAudio/#files

  6. 在 .bash_profile 中添加环境 PORTAUDIO_PATH 以及下载的 portaudio 源代码的完整路径。

    PORTAUDIO_PATH=/full/path/portaudio
    export PORTAUDIO_PATH
    
  7. 在您下载的 PyAudio 源中修改 setup.py 以使用 portaudio 重命名文件夹 portaudio-v19

    portaudio_path = os.environ.get("PORTAUDIO_PATH", "./portaudio")
    
  8. 安装

    python3 setup.py install --static-link
    
于 2019-09-28T04:43:27.470 回答