python - 使用 PIP 安装的 PyAudio 缺少文件?
问题描述
我正在尝试为一个项目安装 PyAudio。我已经添加了我的 python 安装路径C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64
和 Scripts 子文件夹。我正在运行一个提升的 CMD 实例。我输入:pip install PyAudio
。构建过程开始。下面是输出:
Microsoft Windows [Version 10.0.18362.592]
(c) 2019 Microsoft Corporation. All rights reserved.
C:\WINDOWS\system32>pip install PyAudio
Collecting PyAudio
Using cached PyAudio-0.2.11.tar.gz (37 kB)
Building wheels for collected packages: PyAudio
Building wheel for PyAudio (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: 'c:\program files (x86)\microsoft visual studio\shared\python37_64\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\aweso\\AppData\\Local\\Temp\\pip-install-mi36cn5j\\PyAudio\\setup.py'"'"'; __file__='"'"'C:\\Users\\aweso\\AppData\\Local\\Temp\\pip-install-mi36cn5j\\PyAudio\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\aweso\AppData\Local\Temp\pip-wheel-7out287e'
cwd: C:\Users\aweso\AppData\Local\Temp\pip-install-mi36cn5j\PyAudio\
Complete output (17 lines):
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-3.7
copying src\pyaudio.py -> build\lib.win-amd64-3.7
running build_ext
building '_portaudio' extension
creating build\temp.win-amd64-3.7
creating build\temp.win-amd64-3.7\Release
creating build\temp.win-amd64-3.7\Release\src
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DMS_WIN64=1 "-Ic:\program files (x86)\microsoft visual studio\shared\python37_64\include" "-Ic:\program files (x86)\microsoft visual studio\shared\python37_64\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt" /Tcsrc/_portaudiomodule.c /Fobuild\temp.win-amd64-3.7\Release\src/_portaudiomodule.obj
_portaudiomodule.c
c:\program files (x86)\microsoft visual studio\shared\python37_64\include\pyconfig.h(117): warning C4005: 'MS_WIN64': macro redefinition
src/_portaudiomodule.c: note: see previous definition of 'MS_WIN64'
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\\2019\\Community\\VC\\Tools\\MSVC\\14.24.28314\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2
----------------------------------------
ERROR: Failed building wheel for PyAudio
Running setup.py clean for PyAudio
Failed to build PyAudio
Installing collected packages: PyAudio
Running setup.py install for PyAudio ... error
ERROR: Command errored out with exit status 1:
command: 'c:\program files (x86)\microsoft visual studio\shared\python37_64\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\aweso\\AppData\\Local\\Temp\\pip-install-mi36cn5j\\PyAudio\\setup.py'"'"'; __file__='"'"'C:\\Users\\aweso\\AppData\\Local\\Temp\\pip-install-mi36cn5j\\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\aweso\AppData\Local\Temp\pip-record-e30_qx6x\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\program files (x86)\microsoft visual studio\shared\python37_64\Include\PyAudio'
cwd: C:\Users\aweso\AppData\Local\Temp\pip-install-mi36cn5j\PyAudio\
Complete output (17 lines):
running install
running build
running build_py
creating build
creating build\lib.win-amd64-3.7
copying src\pyaudio.py -> build\lib.win-amd64-3.7
running build_ext
building '_portaudio' extension
creating build\temp.win-amd64-3.7
creating build\temp.win-amd64-3.7\Release
creating build\temp.win-amd64-3.7\Release\src
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DMS_WIN64=1 "-Ic:\program files (x86)\microsoft visual studio\shared\python37_64\include" "-Ic:\program files (x86)\microsoft visual studio\shared\python37_64\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt" /Tcsrc/_portaudiomodule.c /Fobuild\temp.win-amd64-3.7\Release\src/_portaudiomodule.obj
_portaudiomodule.c
c:\program files (x86)\microsoft visual studio\shared\python37_64\include\pyconfig.h(117): warning C4005: 'MS_WIN64': macro redefinition
src/_portaudiomodule.c: note: see previous definition of 'MS_WIN64'
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\\2019\\Community\\VC\\Tools\\MSVC\\14.24.28314\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2
----------------------------------------
ERROR: Command errored out with exit status 1: 'c:\program files (x86)\microsoft visual studio\shared\python37_64\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\aweso\\AppData\\Local\\Temp\\pip-install-mi36cn5j\\PyAudio\\setup.py'"'"'; __file__='"'"'C:\\Users\\aweso\\AppData\\Local\\Temp\\pip-install-mi36cn5j\\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\aweso\AppData\Local\Temp\pip-record-e30_qx6x\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\program files (x86)\microsoft visual studio\shared\python37_64\Include\PyAudio' Check the logs for full command output.
C:\WINDOWS\system32>
据我了解,无法构建轮子,因为_portaudiomodule.c
试图包含portaudio.h
,但由于某种原因不存在。
在构建轮子失败后, pip 然后尝试运行setup.py
,它再次调用portaudiomodule.c
,它又不能包含portaudio.h
。
这是 pypi.org 上的软件包错误还是我安装的 pip 错误?
Python 3.7.5,安装在 Visual Studio Community 2019 下。Windows 10 主页
解决方案
PyPi 中的版本似乎存在问题。(另见这个答案)
PyAudio 的维护者还没有为在 Windows 上运行的 python 3.7 构建它,所以你的系统正在尝试编译它,但失败了。
如果你可以访问 Python 3.6,你应该可以在那里从 PyPi 安装。
看起来让它在 Python 3.7 上运行的最好方法是使用Christoph Gohlke的预构建轮子
编辑:使用安装说明进行更新(参考)
您需要特定于您的版本和构建 python(3.7、64 位)的轮子,因此您需要下载PyAudio‑0.2.11‑cp37‑cp37m‑win_amd64.whl
然后将该文件提供给 pip 例如
pip install C:\Users\AwsesomeCronk\Downloads\PyAudio‑0.2.11‑cp37‑cp37m‑win_amd64.whl
如果 Visual Studio 对您的环境做了一些有趣的事情,例如隐藏系统文件,您可能需要将 .whl 文件复制到您的项目目录并从那里安装。
推荐阅读
- linux - Linux 上的 ZSH 无法识别 shell 脚本中的有效选项
- python - 单击python我如何从命令行读取json之类的参数
- python - 有什么方法可以获取每只股票(200+)的所有季度业绩数据并使用 python 将其存储在 excel 中?
- azure - 天蓝色数据工厂更新
- testing - 结构动态 TestCafe 运行
- oracle - PLSQL:如何逐行通过游标,将值复制到表中,并在同一个循环中将这些值保存到变量中?
- python - SQLAlchemy 中的反射不适用于 MS SQL Server 系统表?
- android - NetworkOnMainThreadException 对协程中的网络调用有效吗?
- python - 带有两个程序的 gui 类
- owl - 作为 unionOf 的类,但没有其他类不相交