Mac M1 pyenv 安装python 报错 “BUILD FAILED (OS X 12.3.1 using python-build 20180424)”

对于在Mac M1芯片上使用pyenv安装Python时遇到的BUILD FAILED错误,这通常是由于pyenv在编译Python时与Rosetta 2(用于兼容非原生M1应用程序的技术)的兼容性问题导致的。以下是详细的解决方法:

  1. 确保环境准备

    • 确保你的Mac已经安装了Xcode命令行工具。你可以通过运行以下命令来安装:
      bash
      xcode-select --install
    • 确保已经安装了Homebrew,它是Mac上的包管理器。如果未安装,可以通过以下命令安装:
      bash
      /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  2. 安装依赖项

    • 使用Homebrew安装必要的依赖项:
      bash
      brew install openssl readline sqlite3 xz zlib
  3. 设置环境变量

    • 在终端中设置以下环境变量,以便在编译Python时正确找到依赖项:
      bash
      export LDFLAGS="-L/opt/homebrew/opt/zlib/lib -L/opt/homebrew/opt/sqlite/lib" export CPPFLAGS="-I/opt/homebrew/opt/zlib/include -I/opt/homebrew/opt/sqlite/include" export PKG_CONFIG_PATH="/opt/homebrew/opt/zlib/lib/pkgconfig:/opt/homebrew/opt/sqlite/lib/pkgconfig"
  4. 使用pyenv安装Python

    • 确保使用pyenv安装最新版本的Python,因为较新的版本通常具有对M1芯片的更好支持。例如,安装Python 3.10.3可以使用以下命令:
      bash
      pyenv install 3.10.3
    • 如果你之前已经安装过Python,并且仍然遇到问题,可以尝试先卸载已安装的Python版本,然后重新安装:
      bash
      pyenv uninstall <version> pyenv install <version>
  5. 重试安装

    • 安装过程可能需要一些时间来下载和编译Python。如果之前出现错误,现在应该可以成功完成安装过程。

通过上述步骤,你应该能够在Mac M1上使用pyenv成功安装Python,并避免出现BUILD FAILED错误。确保按照每个步骤的指导操作,并根据需要调整版本号和依赖项的路径。