You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行Python文件时出现libpython3.9.so加载错误:缺少GLIBC_2.29

解决GLIBC_2.29版本缺失导致的Python可执行文件运行错误

问题重现

执行PyInstaller打包的Python可执行文件时触发错误:

[20636] Error loading Python lib '/tmp/_MEIlOFEGz/libpython3.9.so.1.0': dlopen: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/_MEIlOFEGz/libpython3.9.so.1.0)

可行解决方案

1. 低版本GLIBC环境重新打包

  • 找一台GLIBC版本≤目标系统的机器(或用Docker拉取如ubuntu:18.04这类低版本镜像),搭建Python3.9环境后重新用PyInstaller打包。PyInstaller会绑定打包环境的依赖库,低版本环境打包的程序能兼容更低的系统。

2. 替换兼容的libpython库

  • 从目标系统已安装的Python3.9目录中复制libpython3.9.so.1.0,替换程序运行时临时目录(如/tmp/_MEIlOFEGz/)里的对应文件;或者将兼容库放到程序同目录,运行前执行export LD_LIBRARY_PATH=.再启动程序。

3. 静态编译Python后打包

  • 编译静态链接的Python3.9,这样打包出的程序不依赖系统GLIBC:
    wget https://www.python.org/ftp/python/3.9.18/Python-3.9.18.tgz
    tar xzf Python-3.9.18.tgz
    cd Python-3.9.18
    ./configure --enable-static --prefix=/usr/local/python39-static
    make -j$(nproc) && sudo make install
    
    用这个静态Python环境运行PyInstaller重新打包程序。

4. 升级系统GLIBC(谨慎操作)

  • 若目标系统允许,可手动升级GLIBC到2.29+,但直接升级系统核心库可能导致系统崩溃,务必先备份数据:
    wget https://ftp.gnu.org/gnu/glibc/glibc-2.29.tar.gz
    tar xzf glibc-2.29.tar.gz
    cd glibc-2.29
    mkdir build && cd build
    ../configure --prefix=/usr
    make -j$(nproc)
    sudo make install
    
    升级后重启系统,部分旧程序可能无法兼容,需做好测试。

内容的提问来源于stack exchange,提问作者moskino11

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 23:11:14