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

2024-05-14 06:31:53 发布

您现在位置: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

我现在不知道该去哪里


Tags: installpiplocal错误codeerroropenrecord
3条回答

以管理员身份尝试此操作,并运行以下操作:

pip install pipwin
pipwin install pyaudio

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

请参阅PortAudio网站,了解获取并安装到您的平台的官方方式的详细信息

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

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

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

最后,似乎有很多人在为Windows提供非官方的预编译PortAudio二进制文件。如果您搜索“portaudio windows二进制文件”或“portaudio windows预编译”,您会找到许多。我不知道测试得有多好,有多先进,等等。这些都是


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

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

conda config --add channels conda-forge 

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

conda install pyaudio

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

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

但是,PyAudio有unofficial wheels支持3.7+

如果您使用的是官方版本,则必须将Python3.6与PyAudio 0.2.11结合使用

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

相关问题 更多 >