Python安装pyav库踩过的那些坑

1. 方法

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

 

2. 安装环境准备

  • 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,运行出版本号之类的信息,表明环境已经成功安装好了。

 

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

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版本都换过了安装,都是一样的错误。

d. 随后经过多番查找资料和分析,这些错误都是各种链接库的报错,找不到dLL文件之类的,随后将ffmpeg中的include和lib中的所有文件全部分别copy到python解释器安装位置的inculde和libs文件夹中,这样在运行pip命令时,应该就能找到这些所需的环境和库文件了,或者将这两个文件夹位置路径也加入到环境变量中。再次运用pip安装,终于安装成功。

4. 小结

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

你可能感兴趣的:(python)