为什么调用本地ffmpeg时Travis编译的PyInstaller捆绑包失败?

问题描述

我正在编写一个使用Travis CI与PyInstaller捆绑并部署二进制文件的Python应用程序。该应用程序将捆绑的svtplay-dl *二进制文件作为子进程运行。 svtplay-dl本身uses shutil.which())来定位ffmpegrun that in a subprocess

如果我下载Travis版本并在自己的计算机上运行它,则ffmpeg调用会导致错误。

基于Xenial(16.04)

ERROR: Something went wrong: /usr/bin/ffmpeg: /tmp/_MEI0gRAWr/libz.so.1: version `ZLIB_1.2.9' not found (required by /usr/lib/x86_64-linux-gnu/libpng16.so.16)

但是,如果我让Travis构建在其他发行版上,则错误会有所不同:

基于仿生(18.04)

ERROR: Something went wrong: /usr/bin/ffmpeg: symbol lookup error: /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0: undefined symbol: FcWeightFromOpenTypeDouble

焦点(20.04)成功,没有错误。在本地计算机上也是如此。但是我仍然对为什么不同的构建环境很重要感到困惑。如果svtplay-dl使用which,则我的本地计算机在ffmpeg中具有PATH就足够了。如何解释这种行为?

*我可能应该改为将其作为Python模块导入,但这不重要。我只想知道为什么会这样,而不是任何解决方法。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...