我无法正确安装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安装?
感谢任何帮助!
答案 0 :(得分:4)
$ brew install portaudio
$ pip install pyaudio
portaudio提供的一些缺少的库。适用于Python 2.7(不确定其他版本)
答案 1 :(得分: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"
$
这至少对我有用。
答案 2 :(得分:1)
根据我上面的评论,这类似于this回答,但由于OP不清楚,我将再试一次。 (这基本上只是我在做这个时给自己做的一些笔记的剪切和粘贴。)
source bin/activate
答案 3 :(得分:1)
您可以使用安装portaudio $ sudo port install portaudio
的mac安装程序安装pyaduio答案 4 :(得分:1)
这将安装pyaudio所需的portaudio:
sudo port install portaudio
接下来,为您的python版本
寻找合适的pyaudio macportport search pyaudio
假设您正在使用python27,请安装pyaudio:
sudo port install py27-pyaudio
参考文献:
答案 5 :(得分: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
多数民众赞成!
答案 6 :(得分:1)
关键是这个命令:
export CFLAGS="-I `pwd`/portaudio-v19/include/ -L `pwd`/portaudio-v19/lib/.libs/"
避免此类文件错误。
这解决了我的问题,非常感谢@tuxdna。
答案 7 :(得分:0)
问题是pyaudio
安装脚本(setup.py
)假定所有必需的标头都在/usr/include
中。这就是为什么它适用于HomeBrew,而不是MacPorts,它通常(并且干净地)将所有内容放在/opt/local
下。
PyAudio维护者依赖HomeBrew,现在没有选项组合允许拼写出查找标题的位置。在撰写本文时,setup.py
source code仅支持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上进行测试。
答案 8 :(得分:0)
我最近需要这个,因为我想使用Google Cloud API转录麦克风的音频。我的Mac中安装了Python 3.7。
i386的最新OSx版本不支持此功能,因此要解决此问题,需要修改配置文件。
将此行添加到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
从您的portaudio文件夹中
./configure && make
sudo make install
下载PyAudio源代码(无限制)https://pypi.org/project/PyAudio/#files
在.bash_profile中添加环境PORTAUDIO_PATH,其中包含已下载的portaudio源代码的完整路径。
PORTAUDIO_PATH=/full/path/portaudio
export PORTAUDIO_PATH
在下载的PyAudio源文件中,修改setup.py,以将portaudio-v19文件夹重命名为portaudio
portaudio_path = os.environ.get("PORTAUDIO_PATH", "./portaudio")
安装
python3 setup.py install --static-link
答案 9 :(得分:0)
我遇到了同样的问题。对我来说,我从 portaudio 官方网站下载了源代码。
编译安装后,将头文件pa_mac_core.h
从<source code folder>/include
复制到/usr/local/include
。问题终于解决了。