Mac M1芯片通过源码安装Python2.7.x

文章目录

  • Mac M1芯片通过源码安装Python2.7.x
  • 1. 下载源码
  • 2. 安装依赖
  • 3. 配置环境
  • 4. 配置编译选项
  • 5. 编译
  • 6. 验证安装

Mac M1芯片通过源码安装Python2.7.x

首先,由于Apple M1芯片使用的是ARM架构,已经不支持Python2.7.x了,所以需要利用Rosetta手动编译Python2.7.x,这里以安装Python2.7.17为例。

1. 下载源码

首先,从 Python 官方网站下载Python 2.7.17的源码并解压缩:

// 直接下载,也可以登陆到网址下载
curl -O https://www.python.org/ftp/python/2.7.17/Python-2.7.17.tgz

// 解压Python-2.7.17.tgz,如果无法解压可以自行去目录下解压,在/User/yourname/下
tar -xzf Python-2.7.17.tgz

// 进入到Python-2.7.17文件夹中
cd Python-2.7.17

2. 安装依赖

前面讲到M1芯片如何安装Homebrew,这里我们需要利用Homebrew安装编译所需要的依赖,如果你不想使用 Homebrew,依赖库需要手动安装,例如从官方下载 OpenSSL、Readline 和 zlib,但是会非常麻烦。

brew install openssl readline zlib

3. 配置环境

由于 M1 芯片是基于 ARM 架构的,而 Python 2.7.17 是为 Intel 架构设计的,你需要使用 Rosetta 2 来模拟 x86_64 架构。在运行 ./configuremake 之前,确保使用 Rosetta 2 来执行这些操作。

如果没有安装Rosetta,可以运行以下命令来安装:

/usr/sbin/softwareupdate --install-rosetta --agree-to-license

打开终端,通过 Rosetta 运行。arch -x86_64作用是在 M1 芯片的 Mac 上以 x86_64 架构启动 zsh shell。

arch -x86_64 /bin/zsh

设置编译的环境变量,在bash_profile使用正确的库路径:

vim ~/.bash_profile

# Openssl and Zlib
export CFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix zlib)/include"
export LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix zlib)/lib"

4. 配置编译选项

运行 ./configure 来配置 Python 安装路径,并链接依赖库。

arch -x86_64 ./configure --prefix=/usr/local/python2.7.17 --with-openssl=$(brew --prefix openssl) --enable-unicode=ucs4

5. 编译

使用 make 进行编译,编译成功后,安装 Python 2.7.17,逐行运行代码:

make
sudo make install

6. 验证安装

编译结束后会默认将python2.7.17放入/usr/local下,其中的/bin/python2.7目录下就是Python2.7.17版本。

/usr/local/python2.7.17/bin/python2.7 --version

你可能感兴趣的:(macos,python)