安装pyav库踩过的那些坑

安装pyav库踩过的那些坑

  1. 方法

系统为windows 10-64位,网上可以查到用conda的方法可以非常轻松的安装,但我本人喜欢原生的python+pip方法安装库,虽然倒腾很多,但是很乐意。因此本文主要是总结一下采用“pip + 已装好的ffmpeg环境”进行安装时所遇到的问题,希望对其他人有所帮助。

  1. 安装环境准备

http://docs.mikeboers.com/pyav/develop/overview/installation.html#dependencies,根据pypi官网给的pyav安装要求,windows系统用pip之前需要自行安装ffmpeg。
https://ffmpeg.zeranoe.com/builds/,这个是ffmpeg的安装包下载地址,一共有三种,其中static可以单独安装,但是不方便扩展;因此最好是安装ffmpeg-shared和ffmpeg-dev,将这两个包下载好(我下载都是最新版本),解压缩统一放到自己电脑磁盘中,譬如我的解压缩到这新建的文件夹中C:\Program Files\ffmpeg.
官网中提到说在pip安装av前,还得让python知道ffmpeg安装在哪里。网上查到的一般都是将ffmpeg里的bin目录放到环境变量中,我也就这么做了。
测试ffmpeg是否安装成功,在cmd命令行中,输入ffmpeg,运行出版本号之类的信息,表明环境已经成功安装好了。

  1. 安装过程中踩过的那些坑

a. 用下面这个命令进行安装,用的是清华镜像库源,

python -m pip install av -i https://pypi.tuna.tsinghua.edu.cn/simple/

结果报错,提示需要visual C++ 14.0的环境,随后去了官网下载visual c++ 14.0 build tools,这个对应visual studio 2015版本,Visual C++ Build Tools 2015 ,下载地址为:https://devblogs.microsoft.com/python/unable-to-find-vcvarsall-bat/

b. 安装好vc++ ,继续用pip安装,结果又报错,提示“LINK : fatal error LNK1181: cannot open input file ‘swresample.lib’“,“failed with exit status 1181”以及“ERROR: Command errored out with exit status 1”,怀疑是不是因为2015版本太低,随后安装了2019版的环境。

c. 结果还是报同样的错误,包括 “error: command ‘C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.24.28314\bin\HostX86\x64\link.exe’ failed with exit status 1181”,随后又陆续将av版本从0.x.x版本到7.x.x版本都换过了安装,都是一样的错误。
lib报错
d. 随后经过多番查找资料和分析,这些错误都是各种链接库的报错,找不到dLL文件之类的,随后将ffmpeg中的include和lib中的所有文件全部分别copy到python解释器安装位置的inculde和libs文件夹中,这样在运行pip命令时,应该就能找到这些所需的环境和库文件了,或者将这两个文件夹位置路径也加入到环境变量中。再次运用pip安装,终于安装成功。

  1. 小结

每个人在安装过程中遇到问题可能都不一样,本文给出了很多人经常会遇到的几个错误,希望对其他有所帮助
有些python第三方库总是依赖于各种各样的基础库和环境,在安装前需要多查找资料,搞清楚“操作系统版本、python解释器版本、基础库版本以及目标第三方库版本“的对应关系。
像这个问题,可以轻松通过conda的方式很轻松解决掉,但是喜欢爱折腾的人,问题多未必坏事,这正是积累经验的时候,希望大家都能迎难而上,多涨姿识。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值