Windows安装pyav报错:ERROR: Failed building wheel for av.Failed to build av. ERROR: Could not build wheel
1.软件环境
Windows10 教育版64位
Python 3.6.3
2.问题描述
Python3.6在Windows环境下,使用pip命令安装pyav:
pip install av
出现如下报错,导致装不上pyav:
ERROR: Failed building wheel for av
Failed to build av
ERROR: Could not build wheels for av which use PEP 517 and cannot be installed directly:
(C:\Users\Jayce\Anaconda3\envs\tf1.7) E:\Code\Python>pip install av
Looking in indexes: https://pypi.doubanio.com/simple
Collecting av
Downloading https://pypi.doubanio.com/packages/00/3f/9fe21065912902a7856a69df334a67b73a51da5e08ff033fd79f15d05764/av-9.1.1.tar.gz (2.4 MB)
|████████████████████████████████| 2.4 MB 3.2 MB/s
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... done
Building wheels for collected packages: av
Building wheel for av (PEP 517) ... error
ERROR: Command errored out with exit status 1:
command: 'C:\Users\Jayce\Anaconda3\envs\tf1.7\python.exe' 'C:\Users\Jayce\Anaconda3\envs\tf1.7\lib\site-packages\pip\_vendor\pep517\in_process\_in_process.py' build_wheel 'C:\Users\J
ayce\AppData\Local\Temp\tmpctqsnqx6'
cwd: C:\Users\Jayce\AppData\Local\Temp\pip-install-hi4s2fdw\av_03c9287622cf4da7918135c5be424e7b
Complete output (38 lines):
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-3.6
creating build\lib.win-amd64-3.6\av
copying av\about.py -> build\lib.win-amd64-3.6\av
copying av\datasets.py -> build\lib.win-amd64-3.6\av
copying av\deprecation.py -> build\lib.win-amd64-3.6\av
copying av\__init__.py -> build\lib.win-amd64-3.6\av
copying av\__main__.py -> build\lib.win-amd64-3.6\av
creating build\lib.win-amd64-3.6\av\audio
copying av\audio\__init__.py -> build\lib.win-amd64-3.6\av\audio
creating build\lib.win-amd64-3.6\av\codec
copying av\codec\__init__.py -> build\lib.win-amd64-3.6\av\codec
creating build\lib.win-amd64-3.6\av\container
copying av\container\__init__.py -> build\lib.win-amd64-3.6\av\container
creating build\lib.win-amd64-3.6\av\data
copying av\data\__init__.py -> build\lib.win-amd64-3.6\av\data
creating build\lib.win-amd64-3.6\av\filter
copying av\filter\__init__.py -> build\lib.win-amd64-3.6\av\filter
creating build\lib.win-amd64-3.6\av\sidedata
copying av\sidedata\__init__.py -> build\lib.win-amd64-3.6\av\sidedata
creating build\lib.win-amd64-3.6\av\subtitles
copying av\subtitles\__init__.py -> build\lib.win-amd64-3.6\av\subtitles
creating build\lib.win-amd64-3.6\av\video
copying av\video\__init__.py -> build\lib.win-amd64-3.6\av\video
running build_ext
building 'av.buffer' extension
creating build\temp.win-amd64-3.6
creating build\temp.win-amd64-3.6\Release
creating build\temp.win-amd64-3.6\Release\src
creating build\temp.win-amd64-3.6\Release\src\av
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c logo /Ox /W3 /GL /DNDEBUG /MD -IC:\Users\Jayce\Anaconda3\envs\tf1.7\include -IC:\Users\Jayce\Anaconda
3\envs\tf1.7\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Wi
ndows Kits\8.1\include\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\winrt" /Tcsrc\av\buffer.c /Fobuild\temp.win-amd6
4-3.6\Release\src\av\buffer.obj
buffer.c
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\link.exe logo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:C:\Users\Jayce\Anaconda3
\envs\tf1.7\libs /LIBPATH:C:\Users\Jayce\Anaconda3\envs\tf1.7\PCbuild\amd64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64" "/LIBPATH:C:\Program Files (x86)\
Windows Kits\10\lib\10.0.10240.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x64" avformat.lib avcodec.lib avdevice.lib avutil.lib avfilter.lib swscale.li
b swresample.lib /EXPORT:PyInit_buffer build\temp.win-amd64-3.6\Release\src\av\buffer.obj /OUT:build\lib.win-amd64-3.6\av\buffer.cp36-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.6\Rele
ase\src\av\buffer.cp36-win_amd64.lib
LINK : fatal error LNK1181: cannot open input file 'avformat.lib'
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\link.exe' failed with exit status 1181
----------------------------------------
ERROR: Failed building wheel for av
Failed to build av
ERROR: Could not build wheels for av which use PEP 517 and cannot be installed directly
但是为啥其他人就能成功安装呢?
3.解决方法(Python3.5-3.9都可以解决)
发生上面的错误,是因为当前版本的pyav没有适合当前开发环境的版本(如我这边是Python 3.6),因此需要自己编译,而自己编译需要安装FFmpeg,进而导致因为没有FFmpeg引发了编译错误。因此有3种解决方法:
1.换Python版本(之前写的代码,可能要做Python版本适配工作,不推荐);
2.自己装FFmpeg,然后自己编译(较为繁琐);
3.直接下载我这边提供编译好的安装文件(含Python3.5-3.9,适用于Windows、Linux、MacOS平台),直接选择对应的版本,然后使用pip本地安装即可(推荐)。
由于方法1和2的局限性,建议使用方法3,直接安装:
3.1.获取编译好的安装文件
1.百度网盘下载我提供的工具:Win10安装pyav出现报错(推荐,比CDSN便宜):
链接:https://pan.baidu.com/s/1S6l5NktF_Go_lDphONg3CQ?pwd=0aou 提取码:0aou,下载后打开“微信支付.png”使用微信扫码支付:
获取压缩包密码的2种方式:
第1种方式:付款后微信留言购买的资源名称(上方橙色文字),博主会微信回复你解压密码(推荐,不需要加好友):
→
→
第2种方式:截图支付凭证以及资源名称(上方橙色文字)在CSDN私信博主,博主会CSDN私聊你解压密码:
→
或直接在CSDN下载(不推荐!CSDN会随着下载次数增多而涨价,导致资源太贵)
注意:由于虚拟软件的可复制性,一旦售出,便会产生多个副本,因此概不退款,谢谢合作!
3.2.安装获取到的WHL文件
下载完毕后,根据自己电脑的系统、位数、python的版本,选择好适合自己的软件版本(如我这边是Win10 64位操作系统、python3.6,要安装pyav,那么就选择av-cp36-cp36m-win_amd64.whl这个文件),然后使用pip本地安装即可,pip本地安装可以参考这篇博客:
pip安装本地指定版本的whl文件https://blog.csdn.net/qq_15969343/article/details/79055603
可以看到pyav已经成功安装,且能正常导入使用了: