一尘不染

Python软件包安装问题:PyAudio,PortAudio

python

我在安装PyAudio和portaudio时遇到问题。

当我python -m pip install pyaudio收到此错误时:

    src/_portaudiomodule.c(29): fatal error C1083: Cannot open include file: 'portaudio.h': No such file or directory
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.14.26428\\bin\\HostX86\\x86\\cl.exe' failed with exit status 2
    ----------------------------------------
Command ""C:\Users\This PC\AppData\Local\Programs\Python\Python37-32\python.exe" -u -c "import setuptools, tokenize;__file__='C:\\Users\\THISPC~1\\AppData\\Local\\Temp\\pip-install-3ock7jqh\\pyaudio\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\THISPC~1\AppData\Local\Temp\pip-record-14pe9p6y\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\THISPC~1\AppData\Local\Temp\pip-install-3ock7jqh\pyaudio\

因此,在查找了该错误之后,我读到我需要安装portaudio。所以我做到了,python -m pip install portaudio并得到了这个错误:

Collecting portaudio
Could not find a version that satisfies the requirement portaudio (from versions: )
No matching distribution found for portaudio

我不知道现在该从哪里去。


阅读 778

收藏
2021-01-20

共1个答案

一尘不染

portaudio不是Python软件包,而是一个完全独立于Python的C库,因此您无法通过进行安装pip

请参阅PortAudio网站以获得有关获取并将其安装在平台上的官方方法的详细信息。

在Windows上获取AFAIK的官方方法是下载源代码,然后按照教程中的说明自行编译。您可能想要使用与Python
C扩展相同的编译器进行构建,尽管我不确定是否需要这样做。

或者,如果您在Windows上使用像Chocolatey这样的第三方程序包管理器,则很有可能安装PortAudio。

或者,如果您将Anaconda或Miniconda用于Python,则conda包管理器会知道如何安装Python包所依赖的非Python包,包括portaudio

最后,似乎有很多人为Windows提供了非官方的预编译PortAudio二进制文件。如果您搜索“二进制的portaudio
Windows”或“预编译的portaudio Windows”,则会发现其中的一些。我不知道这些测试是如何经过良好测试,最新的。


如果您使用的是Anaconda / Miniconda,则应该使用conda install pyaudio而不是pip install pyaudio首先使用。您实际上应该只pipconda或中不可用的软件包使用conda-forge

如果尚未设置conda-forge,则可能首先要这样做:

conda config --add channels conda-forge

然后,这应该是您所需要的:

conda install pyaudio

pip仅假设您已portaudio正确安装的软件包不同,该conda软件包将自动安装portaudio为的依赖项pyaudio,或者告诉您为什么不能这样做。

2021-01-20