如何在M1mac上使用pandas? (没有 rosetta 或以任何其他方式更改为 x86 环境)

How to use pandas on M1 mac? (without rosetta or changing to x86 environment in any other way)

我上次写一个 python 项目是在不到 2 个月前,一切正常。我不确定在处理其他项目时是否在我的 mac 上搞砸了,但现在当我尝试 运行 python 文件时,这些文件曾经完美地 运行,如下所示出现错误:

dlopen(/opt/homebrew/lib/python3.9/site-packages/pandas/_libs/interval.cpython-39-darwin.so, 0x0002): tried: '/opt/homebrew/lib/python3.9/site-packages/pandas/_libs/interval.cpython-39-darwin.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/local/lib/interval.cpython-39-darwin.so' (no such file), '/usr/lib/interval.cpython-39-darwin.so' (no such file)

我知道 x86 架构与 arm 架构存在问题,所以我尝试查看终端使用的平台:

python -c 'import platform; print(platform.platform())'  

确认它是 arm64。 做一些谷歌搜索并查看类似的问题,例如 Trouble installing Pandas on new MacBook Air M1 似乎可以在 x86 环境中 运行 python 项目,但是就像已经提到的那样,它之前工作得很好,从那以后似乎没有更新,所以 pandas(可能还有其他库)不再在 arm 上工作会发生什么,如何恢复?

您应该尝试使用 miniforge

其 GitHub 存储库中的定义:

This repository holds a minimal installer for Conda specific to conda-forge. Miniforge allows you to install the conda package manager with the following features pre-configured:

对我们有用的主要功能

An emphasis on supporting various CPU architectures (x86_64, ppc64le, and aarch64 including Apple M1).

我使用的流程:

  1. 创建conda环境,通常使用“python3.9”。
  2. 从 conda 安装包,其中大部分可用,但有些不可用。
  3. 在尝试安装所有可能的 miniforge 包之后,我使用 PIP 来安装剩余的包。

这个工作流程对我来说效果很好,希望对你有所帮助。 我想利用原生的 m1 性能,我想你会看到其中的区别。

默认情况下,miniforge 只下载 python 包的 arm 兼容版本。到目前为止,我在使用大多数数据科学库时没有遇到任何重大问题,除了 PyTorch。