麦克雷

标题: 在Apple Silicon(ARM) Mac上使用 x86 conda 环境 [打印本页]

作者: Elizavetajeva    时间: 2024-11-1 14:02
标题: 在Apple Silicon(ARM) Mac上使用 x86 conda 环境
在Apple Silicon(ARM) Mac上使用 x86 conda 环境
作者: globetrotter    时间: 2024-11-1 14:03
在Apple Silicon Mac上使用x86 conda环境的教程。

新推出的Apple Silicon Mac配备了自家的M1芯片,与传统的Intel芯片版本相比,新款Mac在续航、散热和性能方面实现了显著提升。然而,由于M系列芯片采用ARM架构而非x86架构,导致基于Intel芯片生态的程序在Mac上面临兼容性问题。苹果推出了Rosetta 2转译器,虽然在一定程度上牺牲了性能,但仍确保了先前的应用程序在新一代M系列芯片Mac上运行。对于科研用户来说,尽管面临性能损失,但Mac的卓越表现还是吸引了他们。近期,Python 3.9及更新版本以及常用库如numpy加入了对ARM原生支持,conda也推出了ARM版本,这使得用户可以方便地安装和管理各种基于ARM的库,并享受原生运行带来的极高效率。

然而,对于许多第三方库,由于维护更新和适配原因,它们并未加入对原生ARM的支持。例如,宇宙学领域常用的数据分析库nbodykit,就可能遇到找不到所需库或安装失败的问题。对于熟悉Python编程但不懂编译原理的用户来说,直接从源码编译这些库可能显得束手无策。

为了解决这一问题,可以通过以下步骤在ARM芯片的Mac上运行x86的conda环境。首先,安装miniconda,可以使用官方文档提供的ARM/x86的miniconda安装文件。接下来,通过简单命令创建一个名为x86_env的3.12版本的Python虚拟环境,并安装必要的库,如numpy和jupyter。这样,用户可以在ARM架构下运行原生的conda环境。

性能对比显示,ARM原生运行的numpy相较于转译版本的性能表现在2倍以上。通过比较,用户可以清楚地看到原生ARM架构的优势。

对于已经安装了x86版本miniconda的用户,可以通过反向操作在现有环境上创建ARM架构的虚拟环境。这通常适用于早期M1 Mac用户。具体操作是将miniconda安装文件名从Miniconda3-latest-MacOSX-arm64.sh更改为Miniconda3-latest-MacOSX-x86_64.sh,然后创建ARM架构的虚拟环境。

总结,本教程详细介绍了如何在搭载M系列芯片的Mac上搭建x86和ARM架构的Python虚拟环境。对于将Python作为生产工具的科研用户,特别是那些不愿涉及编译细节,又希望同时享受ARM原生高性能和x86卓越兼容性的用户,本教程提供了实用的解决方案。随着Windows on ARM领域的发展,期待针对Python及其conda环境管理器的解决方案在更多平台上得到实现,让更多用户体验到ARM原生Python带来的卓越性能和节能优势。




欢迎光临 麦克雷 (http://imac.ly/) Powered by Discuz! X3.5