conda无法安装搜索到的osx-arm64架构r-base包问题
问题描述
我遇到的问题与某类似案例根因不同——对方是依赖不兼容,而我尝试从conda-forge/osx-arm64通道安装已有的同版本r-base包:
- 执行
conda search conda-forge/osx-arm64::r-base可找到多个4.2.1版本的r-base包 conda list r-base显示已安装r-base 4.2.1 h85fa70c_1(来自conda-forge)- 我的Mac为arm架构(已用
uname -p验证),但R版本显示平台为x86_64-apple-darwin13.4.0,希望切换到osx-arm64架构的包解决不匹配问题 - 执行
conda install conda-forge/osx-arm64::r-base返回PackageNotFoundError
排查后发现conda info显示conda将系统识别为osx-64(x86架构),推测是从旧x86电脑迁移数据导致,不清楚如何修改conda的架构识别。以下是conda info完整输出:
active environment : JupyterWithR active env location : /Users/baileyandrew/opt/anaconda3/envs/JupyterWithR shell level : 2 user config file : /Users/baileyandrew/.condarc populated config files : /Users/baileyandrew/.condarc conda version : 22.9.0 conda-build version : 3.21.5 python version : 3.9.7.final.0 virtual packages : __osx=10.16=0 __unix=0=0 __archspec=1=x86_64 base environment : /Users/baileyandrew/opt/anaconda3 (writable) conda av data dir : /Users/baileyandrew/opt/anaconda3/etc/conda conda av metadata url : None channel URLs : https://repo.anaconda.com/pkgs/main/osx-64 https://repo.anaconda.com/pkgs/main/noarch https://repo.anaconda.com/pkgs/r/osx-64 https://repo.anaconda.com/pkgs/r/noarch package cache : /Users/baileyandrew/opt/anaconda3/pkgs /Users/baileyandrew/.conda/pkgs envs directories : /Users/baileyandrew/opt/anaconda3/envs /Users/baileyandrew/.conda/envs platform : osx-64 user-agent : conda/22.9.0 requests/2.26.0 CPython/3.9.7 Darwin/21.3.0 OSX/10.16 UID:GID : 501:20 netrc file : None offline mode : False
解决方法
由于从x86电脑迁移数据导致conda架构识别异常,可通过以下步骤修正:
修改.condarc配置文件
打开用户目录下的.condarc文件(路径:/Users/baileyandrew/.condarc),添加或替换为以下内容,强制指定优先使用osx-arm64架构:subdir: osx-arm64 channel_priority: strict channels: - conda-forge - defaults验证架构识别
关闭当前终端后重新打开,执行conda info,检查输出中的platform是否变为osx-arm64、__archspec是否变为arm64。新建arm架构环境安装R
现有环境基于x86架构创建,直接修改易引发依赖冲突,建议新建环境:conda create -n R_arm r-base=4.2.1激活环境后验证R平台:
conda activate R_arm R --version此时应显示平台为
aarch64-apple-darwinXX.X格式。迁移现有环境(可选)
若需要保留原环境的依赖,可先导出依赖列表,再在新环境中重建:# 导出原环境依赖 conda env export -n JupyterWithR > environment.yml # 在新环境中安装依赖 conda env create -n JupyterWithR_arm -f environment.yml
内容的提问来源于stack exchange,提问作者BaileyA
相关产品推荐
相关产品推荐

