M1芯片MacOS下conda创建NGS工具环境提示包缺失问题咨询
问题原因
核心触发因素是Apple Silicon(M1系列arm64架构)的软件源适配问题:
- 你当前安装的是原生arm64版本的Anaconda,conda默认仅检索osx-arm64、noarch架构的安装包,但2022年节点bioconda源中大量生信工具(你提到的sra-tools、samtools、bowtie2、hisat2、subread均在此列)尚未完成arm64原生编译,仅提供osx-64(x86_64)架构的预编译包,因此触发PackagesNotFoundError报错。此前使用Miniconda可以正常安装,是因为当时安装的是x86版本的Miniconda,通过macOS自带的Rosetta2转译运行x86架构包,不存在架构匹配问题。
- 你提到的anaconda-navigator缺失、Spyder启动报
ModuleNotFoundError: No module named 'PyQt5.QtWebEngineWidgets',是Anaconda3-2022.05-MacOSX-arm64这个早期适配版本的打包疏漏,部分预装组件没有完整纳入arm64安装镜像,和你的操作无关。 - 额外注意:你安装命令中添加的
bioconda/label/cf201901是2019年的旧包快照源,包版本严重过时,还会干扰正常依赖解析,不建议添加。
解决方法
NGS工具包安装失败修复
二选一即可:
- 方案1(推荐,无需重装Anaconda):为ngstools环境单独配置x86架构兼容
- 先全局配置正确的通道优先级,避免后续依赖冲突:
conda config --add channels defaults conda config --add channels bioconda conda config --add channels conda-forge conda config --set channel_priority strict- 创建环境时临时指定架构为osx-64,让conda拉取x86版本包通过Rosetta2转译运行,M1芯片下转译运行生信工具的性能损失极低,完全满足常规分析需求:
CONDA_SUBDIR=osx-64 conda create -n ngstools fastqc multiqc sra-tools samtools bowtie2 hisat2 subread -y- 环境创建完成后激活环境,固定该环境的架构配置,避免后续装包时拉取错架构的包产生冲突:
conda activate ngstools conda config --env --set subdir osx-64 - 方案2:更换为x86版本Anaconda
卸载当前arm64版Anaconda后,下载安装osx-64版本的Anaconda/Miniconda,右键终端程序勾选「使用Rosetta打开」后再执行所有装包操作。该方式下所有conda环境默认使用x86架构,无需单独配置,适合仅需要跑生信分析、不需要原生arm64 Python做其他开发的场景。
预装组件异常修复
直接在base环境补装缺失的组件即可,无需重装整个Anaconda:
conda activate base conda install anaconda-navigator pyqtwebengine -y
安装完成后重启终端,即可正常启动Anaconda Navigator和Spyder。
内容的提问来源于stack exchange,提问作者D___
相关产品推荐
相关产品推荐

