如何修复 PyAudio、PortAudio 的安装问题:“致命错误 C1083:无法打开包含文件:'portaudio.h':没有这样的文件或目录”

Posted

技术标签:

【中文标题】如何修复 PyAudio、PortAudio 的安装问题:“致命错误 C1083:无法打开包含文件:\'portaudio.h\':没有这样的文件或目录”【英文标题】:How to fix installation issues for PyAudio, PortAudio: "fatal error C1083: Cannot open include file: 'portaudio.h': No such file or directory"如何修复 PyAudio、PortAudio 的安装问题:“致命错误 C1083:无法打开包含文件:'portaudio.h':没有这样的文件或目录” 【发布时间】:2019-01-30 05:18:40 【问题描述】:

我在安装 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

我现在不知道该去哪里。

【问题讨论】:

【参考方案1】:

试试这个,以管理员身份使用 CMD 并运行以下命令:

pip install pipwin
pipwin install pyaudio

【讨论】:

这个答案应该被接受,因为它是问题的实际答案,因为问题是关于windows操作系统上的pyaudio安装错误,这个解决方案解决了它 @ZainUlAbidin conda 也是一个对我有用的解决方案;但是,pipwin 似乎更轻量级。 对我来说很棒的作品,所以对答案表示赞成 非常感谢!【参考方案2】:

portaudio不是Python包,它是一个完全独立于Python的C库,所以不能通过pip安装。

请访问PortAudio 了解有关官方获取和安装在您的平台上的方式的详细信息。

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

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

或者,如果您在 Python 中使用 Anaconda 或 Miniconda,conda 包管理器知道如何安装 Python 包所依赖的非 Python 包,including portaudio

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


如果您使用的是 Anaconda/Miniconda,您应该首先使用 conda install pyaudio 而不是 pip install pyaudio。你真的应该只对condaconda-forge 上不可用的包使用pip

如果您还没有设置conda-forge,您可能想先设置:

conda config --add channels conda-forge 

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

conda install pyaudio

不像pip 包,它只是假设你已经正确安装了portaudioconda 包将自动安装portaudio 作为pyaudio 的依赖项,或者告诉你为什么它不能。

【讨论】:

我正在使用 anaconda。我将它安装在 sublime text 包管理器中。那么有一种方法可以用它安装 portaudio 吗? @KevinM1990112qwq 如果您使用的是 Anaconda,为什么您使用 pip install pyaudio 而不是 conda install pyaudio 我没有任何想法,我只是在看python入门教程,这就是它告诉我要做的。 Conda 也不工作,即使我确实在 sublime 中安装了包管理器,也可能没有安装。伙计,这有点令人困惑。大声笑 @KevinM1990112qwq 您是否安装了两个或多个不同的 Python 副本?如果您正确安装了 Anaconda,conda 应该在您的 PATH 中。 (如果没有,python 不应该在你的 PATH 上,或者pip,所以 nothing 应该可以工作。)【参考方案3】:

官方PyAudio 0.2.11不支持Python 3.7+,尝试安装会报错C1083: Cannot open include file: 'portaudio.h'

但是,PyAudio 有 unofficial wheels 支持 3.7+。

如果您使用的是正式版,则必须使用 Python 3.6 和 PyAudio 0.2.11。

见http://people.csail.mit.edu/hubert/pyaudio/

【讨论】:

有没有pyaudio的替代品可以在python3.7中使用? @NaazneenJatu,安装 3.6,在其中使用 virtualenv。 致未来的人们:有非官方的 pyaudio ***构建,可让您在最近的 python 3.7+ 中安装它。看这里:***.com/a/55630212 谢谢@Starwarswii,我已将此信息添加到答案中【参考方案4】:

我在 python 3.6.x 上安装了 pyaudio 没有问题,但不能在更高版本上运行。

py -m pip install pyaudio

在 3.6.x 或更早版本上完美运行。

【讨论】:

【参考方案5】:

您可以使用它安装 Anaconda install pyaudio。 您必须将 Anaconda 添加到路径。 安装 Anaconda 并添加到路径后,然后在命令提示符[cmd] 中键入 康达安装pyaudio。 还有鲸鱼

【讨论】:

【参考方案6】:

如果您在尝试使用 pipwin 安装时遇到错误,则必须通过 python 运行它,因为 windows 无法识别 pipwin(至少对我而言)

pip install pipwin
python -m pipwin install pyaudio

【讨论】:

【参考方案7】:

如果您使用的是 anaconda,那么这个问题是因为您的版本没有升级。要升级所有软件包,只需在终端中运行以下命令。

conda 更新 --all

【讨论】:

【参考方案8】:

您可以使用

安装Portaudio
pip install port audio

你可能还需要

pip install ConfigParser

让我知道它是否有效。

【讨论】:

@studioj 它不适用于 python 3.7 这个库到现在只更新到 3.6

以上是关于如何修复 PyAudio、PortAudio 的安装问题:“致命错误 C1083:无法打开包含文件:'portaudio.h':没有这样的文件或目录”的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PyAudio 或 PortAudio 获取设备的音频采样率列表?

如何解决Linux系统下pyaudio安装缺少文件问题error: portaudio.h: 没有那个文件或目录

RPi Pyaudio/Portaudio + ALSA:如何选择/更改多路复用器输入

pyaudio 无法导入 _portaudio

pyaudio安装缺少文件问题error: portaudio.h: 没有那个文件或目录

使用 Python 的 pyaudio(portaudio 绑定)列出所有音频设备