【问题标题】:pyinstaller GLIBC_2.25 not found, however another script works找不到pyinstaller GLIBC_2.25,但是另一个脚本有效
【发布时间】:2022-08-07 01:36:08
【问题描述】:

我用一个简单的 Python 脚本创建了一个可执行文件,在 Ubuntu 18.04 上使用 pyinstaller,并在另一台计算机(也使用 Ubutnu 18)上对其进行了测试,并且运行良好。

但是,当尝试使用更复杂的脚本(更多库导入)时,可执行文件在另一台计算机上失败并出现错误

   ImportError: /lob/x86_64-linux-gnu/libc.so.6: version \'GLIBC_2.25\' not found

这不可能是 Python 不兼容(请参阅https://github.com/pyinstaller/pyinstaller/issues/4758),因为其他脚本确实可以正常工作。所以它很可能是基于第二个脚本导入的一些库。

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

    标签: python pyinstaller executable


    【解决方案1】:

    可能的解决方案(我尚未对此进行测试)是在旧版本的操作系统上构建您的可执行文件。

    我看到了同样的错误。

    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!
    

    我在 Ubuntu 22.04 上使用 Pyinstaller 构建了我的可执行文件。然后我在旧的 Ubuntu 20.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 库更旧)。” 资源: https://github.com/cryptoadvance/specter-desktop/issues/373#issuecomment-694476451

    【讨论】:

      猜你喜欢
      • 2021-06-09
      • 1970-01-01
      • 2011-10-07
      • 1970-01-01
      • 2018-06-20
      • 1970-01-01
      • 1970-01-01
      • 2018-03-01
      • 2016-04-09
      相关资源
      最近更新 更多