pip安装biopython出现subprocess-exited-with-error等报错如何解决
故障根因
Biopython 自1.77版本起完全终止对Python 2.7的兼容支持,当前环境使用Python 2.7时,pip默认拉取最新版Biopython源码包执行传统源码安装流程,新版代码的Python3专属语法无法在Python2环境下编译运行,就会触发subprocess-exited-with-error和legacy-install-failure报错。
能正常安装matplotlib是因为pip自动匹配了适配Python2.7的matplotlib历史兼容版本,而Biopython在PyPI上的旧版本兼容元数据存在标记偏差,pip 22.1.4在Python2环境下未自动拦截不兼容的新版包拉取操作,最终导致安装失败。
可执行修复方案
按优先级从高到低选择操作即可:
- 优先选择适配Python2.7的正式兼容版本安装,直接执行命令:
pip install biopython==1.76
1.76是Biopython官方最后一个支持Python2.7的稳定发行版,PyPI上提供了对应架构的预编译wheel包,安装时不需要本地编译,不会触发legacy安装流程的报错。 - 如果需要使用新版Biopython的功能,直接迁移到Python 3.7及以上版本的虚拟环境/系统环境,再执行常规安装命令即可:
pip install biopython
注:Python 2.7已于2020年停止官方维护,目前几乎所有生物信息学方向的Python第三方包都已停止Python2适配,长期使用建议尽快完成Python3环境迁移。 - 如果执行第一条安装命令时仍出现编译类报错,先提前安装对应系统的Python2编译依赖,再重新安装:
- Debian/Ubuntu系列系统执行:
sudo apt-get install python-dev libxml2-dev libxslt1-dev zlib1g-dev - CentOS/RHEL系列系统执行:
sudo yum install python-devel libxml2-devel libxslt-devel zlib-devel
依赖安装完成后重新执行pip install biopython==1.76即可。
- Debian/Ubuntu系列系统执行:
安装验证
安装完成后执行以下命令验证功能是否正常:python -c "import Bio; print(Bio.__version__)"
命令正常输出1.76版本号即代表安装成功,可正常导入使用。
内容的提问来源于stack exchange,提问作者Scott Ford
相关产品推荐
相关产品推荐

