首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >没有找到pyinstaller GLIBC_2.25,但是另一个脚本可以工作

没有找到pyinstaller GLIBC_2.25,但是另一个脚本可以工作
EN

Stack Overflow用户
提问于 2022-03-17 20:30:33
回答 1查看 607关注 0票数 0

我用一个简单的Python脚本创建了一个可执行文件,使用了Ubuntu18.04上的pyinstaller,并在另一台计算机上测试了它(也使用了Ubutnu 18),并且工作得很好。

但是,当对更复杂的脚本(更多的库导入)进行同样的尝试时,可执行文件会在另一台计算机中发生错误。

代码语言:javascript
运行
复制
ImportError: /lob/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.25' not found

这不可能是Python的不兼容性(请参阅https://github.com/pyinstaller/pyinstaller/issues/4758),因为另一个脚本工作得很好。因此,它很可能是基于第二个脚本导入的一些库。

如何包括由Pyinstaller生成的可执行文件中导入的库(如果这甚至是此错误的根源)?

EN

回答 1

Stack Overflow用户

发布于 2022-08-06 17:36:08

解A

我还没有确认这一解决办法,但有时会有所帮助。删除目录./build和./dist,然后尝试使用pyinstaller再次创建可执行文件。

解B

至少对我来说,解决方案是在旧版本的操作系统上构建可执行文件。

我也看到了同样的错误。

代码语言:javascript
运行
复制
ImportError: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /tmp/_MEIjdcWu4/./libX11.so.6)
[32614] Failed to execute script 'test_executable' due to unhandled exception!

我在Ubuntu22.04上用Pyinstaller构建了我的可执行程序。然后,我在较旧的Ubuntu20.04上复制并运行了可执行文件,并遇到了错误。

根据下面的注释,这可能是一个兼容性问题,在新操作系统上构建的可执行文件与旧操作系统不兼容。

“值得注意的是,问题可能是与构建的程序捆绑在一起的库与系统库冲突,从而阻止了DRI驱动程序的正确加载。

罪魁祸首可能是标准c/c++库(libgcc_s.so.1,libstdc++.so.6),也可能是X11库(libX11.so.6、libXau.so.6、libXdmcp.so.6、libXext.so.6、`libXrender.so.1.)。也许前者比后者更有可能。

例如,如果构建系统上的libstdc++.so.6比目标系统使用的要早,那么非绑定库将因缺少符号而无法加载(这些符号存在于库的较新的系统版本中,而不在绑定库中)。对于linux上的二进制软件来说,这实际上是一个很常见的问题,特别是在更多的边缘发行版上。在这些情况下,删除错误库的捆绑版本可能会有所帮助。

(系统libgvfsdbus.so也有类似的问题,它缺少一个在捆绑的libglib-2.0.so.0中不可用的符号,该符号可能比系统上可用的glib库更旧)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71518650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档