如何解决为什么调用本地ffmpeg时Travis编译的PyInstaller捆绑包失败?
我正在编写一个使用Travis CI与PyInstaller捆绑并部署二进制文件的Python应用程序。该应用程序将捆绑的svtplay-dl
*二进制文件作为子进程运行。 svtplay-dl
本身uses shutil.which()
)来定位ffmpeg
和run 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 举报,一经查实,本站将立刻删除。