运行orthofinder遇GLIBC_2.35缺失错误,求解决方案
解决Orthofinder依赖GLIBC_2.35的问题
问题描述
运行命令 ./orthofinder -f /folder 时反复出现以下错误:
[28887] Error loading Python lib '/tmp/_MEIqx6YRS/libpython3.10.so.1.0': dlopen: /lib/x86_64-linux-gnu/libm.so.6: version GLIBC_2.35' not found (required by /tmp/_MEIqx6YRS/libpython3.10.so.1.0)
系统环境信息:
- 基于Ubuntu 18.04 LTS的Linux Mint 19 "Tara"
- 当前GLIBC版本为2.27,通过
ldd --version验证结果:ldd --version ldd (Ubuntu GLIBC 2.27-3ubuntu1.6) 2.27 - 执行
sudo apt update或sudo apt upgrade无法升级GLIBC版本 - 已安装最新版Python,另一台搭载GLIBC 2.31的电脑可正常运行该程序
解决方案
1. 从源码编译运行(推荐)
预编译版Orthofinder打包了依赖高版本GLIBC的Python环境,源码编译可适配本地系统:
- 先安装必要依赖:
sudo apt install python3-pip python3-numpy python3-scipy python3-pandas python3-biopython - 克隆源码并运行:
此方式使用本地Python环境,规避预编译包的依赖问题。git clone https://github.com/davidemms/OrthoFinder.git cd OrthoFinder python3 orthofinder.py -f /folder
2. 下载适配低GLIBC版本的预编译包
查找Orthofinder发布页中明确兼容Ubuntu 18.04/GLIBC 2.27的版本:
- 选择早期版本或标注支持旧系统的预编译包,解压后直接运行,替换当前使用的预编译文件。
3. 修改预编译包调用本地Python(部分场景有效)
若预编译包允许调用外部Python,尝试以下操作:
- 解压当前预编译包(可尝试用
unzip或7z工具,或查看程序帮助文档确认解压方式) - 找到包内主脚本,将开头的shebang行修改为本地Python路径,例如
#!/usr/bin/env python3 - 运行修改后的脚本,避免使用打包的Python环境。
4. 本地安装高版本GLIBC(风险较高)
注意:切勿替换系统默认GLIBC,否则会导致系统崩溃,仅安装到用户目录并临时指定加载路径:
- 下载并编译GLIBC 2.31(另一台可运行机器的版本):
wget https://ftp.gnu.org/gnu/glibc/glibc-2.31.tar.gz tar xf glibc-2.31.tar.gz cd glibc-2.31 mkdir build && cd build ../configure --prefix=$HOME/local/glibc-2.31 make -j$(nproc) make install - 运行Orthofinder时指定GLIBC加载路径:
此方法可能引发其他依赖兼容问题,需谨慎测试。LD_LIBRARY_PATH=$HOME/local/glibc-2.31/lib:$LD_LIBRARY_PATH ./orthofinder -f /folder
内容的提问来源于stack exchange,提问作者gforg34
相关产品推荐
相关产品推荐

