跳转至

macOS (Apple Silicon) 环境配置指南

适用系统: macOS 11.0+ (Apple Silicon M1/M2/M3/M4) 难度: ⭐⭐ 中等 预计时间: 30-45分钟


📋 系统要求

硬件要求

  • 处理器: Apple M1或更高(M1/M2/M3/M4)
  • 内存: 至少8GB RAM(推荐16GB)
  • 存储: 至少20GB可用空间
  • GPU: 集成Apple GPU(支持Metal Performance Shaders)

软件要求

  • 操作系统: macOS 11.0 Big Sur或更高版本
  • Rosetta 2: 某些软件可能需要(系统会自动提示安装)

🚀 快速开始

Step 1: 安装Homebrew

Apple Silicon版本的Homebrew安装路径与Intel版本不同(/opt/homebrew)。

# 安装Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 配置环境变量(重要!)
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

# 验证安装
brew --version
which brew  # 应显示 /opt/homebrew/bin/brew

⚠️ Apple Silicon特别注意: - Homebrew安装在/opt/homebrew/(Intel版本在/usr/local/) - 必须配置~/.zprofile才能正常使用 - 某些包可能需要Rosetta 2兼容层


Step 2: 安装Python 3.11

Apple Silicon原生支持的Python性能更好。

# 安装Python 3.11(ARM64原生版本)
brew install python@3.11

# 验证安装和架构
python3.11 --version
file $(which python3.11)  # 应显示 arm64

# 配置PATH
echo 'export PATH="/opt/homebrew/opt/python@3.11/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

预期输出 (file命令):

/opt/homebrew/bin/python3.11: Mach-O 64-bit executable arm64


Step 3: 安装uv

# 安装uv(ARM64原生支持)
brew install uv

# 验证
uv --version
file $(which uv)  # 应显示 arm64

Step 4-6: 克隆仓库、创建虚拟环境、安装依赖

# 克隆仓库
git clone https://github.com/yourusername/py_ai_tutorial.git
cd py_ai_tutorial

# 创建虚拟环境
uv venv

# 激活虚拟环境
source .venv/bin/activate

# 安装Stage 3依赖
uv pip install -e ".[stage3]"

# 验证安装
python -c "import numpy, pandas, matplotlib, sklearn; print('✅ Stage 3依赖安装成功!')"

Step 7: 安装Jupyter

# 安装Jupyter
uv pip install jupyter jupyterlab

# 启动
jupyter lab

🎮 Apple GPU加速(Metal)

Apple Silicon的优势之一是集成GPU,支持机器学习加速。

配置TensorFlow Metal

如果计划学习Stage 4(深度学习),可以配置TensorFlow Metal加速:

# 激活虚拟环境
source .venv/bin/activate

# 安装TensorFlow和Metal插件
uv pip install tensorflow tensorflow-metal

# 验证GPU可用性
python -c "
import tensorflow as tf
print('GPU可用:', len(tf.config.list_physical_devices('GPU')) > 0)
print('设备列表:', tf.config.list_physical_devices())
"

预期输出:

GPU可用: True
设备列表: [PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU'), 
           PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

配置PyTorch MPS加速

PyTorch也支持Apple的Metal Performance Shaders (MPS):

# 安装PyTorch(自动包含MPS支持)
uv pip install torch torchvision torchaudio

# 验证MPS可用性
python -c "
import torch
print('MPS可用:', torch.backends.mps.is_available())
print('MPS已构建:', torch.backends.mps.is_built())
"

预期输出:

MPS可用: True
MPS已构建: True

使用MPS加速示例:

import torch

# 创建张量并移到MPS设备
device = torch.device("mps" if torch.backends.mps.is_available() else "cpu")
x = torch.randn(1000, 1000).to(device)
y = torch.randn(1000, 1000).to(device)
z = x @ y  # 矩阵乘法在GPU上运行

print(f"计算在设备: {z.device}")  # 输出: mps:0


🔧 高级配置

Rosetta 2兼容性

某些旧包可能没有ARM64版本,需要Rosetta 2:

# 安装Rosetta 2(如果还没有)
softwareupdate --install-rosetta --agree-to-license

# 使用Rosetta运行命令(示例)
arch -x86_64 /bin/bash

判断是否需要Rosetta: - 如果包安装失败并提示架构不兼容 - 如果运行时出现Bad CPU type错误


配置中文字体

# 安装中文字体
brew install font-noto-sans-cjk

# 配置matplotlib
mkdir -p ~/.matplotlib
cat > ~/.matplotlib/matplotlibrc << EOF
font.sans-serif: Noto Sans CJK SC, Songti SC, Arial Unicode MS
axes.unicode_minus: False
EOF

✅ 验证安装

# 完整验证脚本
python -c "
import sys
import platform
import numpy as np
import pandas as pd
import matplotlib
import sklearn

print(f'✅ Python版本: {sys.version}')
print(f'✅ 系统架构: {platform.machine()}')  # 应显示 arm64
print(f'✅ NumPy版本: {np.__version__}')
print(f'✅ Pandas版本: {pd.__version__}')
print(f'✅ Matplotlib版本: {matplotlib.__version__}')
print(f'✅ Scikit-learn版本: {sklearn.__version__}')
print('\\n🎉 环境配置成功!Apple Silicon原生性能!')
"

🐛 常见问题

问题1: Homebrew路径问题

症状: brew: command not found

解决方案:

# 手动配置PATH
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
source ~/.zprofile


问题2: 某些包安装失败(架构不兼容)

症状: ERROR: No matching distribution found

解决方案:

# 方法1: 检查是否有ARM64版本
pip index versions <package-name>

# 方法2: 使用Rosetta运行
arch -x86_64 pip install <package-name>

# 方法3: 从源码编译
pip install --no-binary :all: <package-name>


问题3: TensorFlow Metal报错

症状: Could not load dynamic library

解决方案:

# 重新安装Metal插件
pip uninstall tensorflow-metal
pip install tensorflow-metal

# 或指定版本
pip install tensorflow-metal==1.1.0


问题4: Jupyter内核无法启动

症状: Kernel dies immediately

解决方案:

# 重新注册内核
python -m ipykernel install --user --name=py311 --display-name="Python 3.11 (AI Tutorial)"

# 在Jupyter中选择新内核


🚀 性能优化建议

  1. 使用ARM64原生版本: 优先选择支持ARM64的包
  2. 启用GPU加速: 深度学习任务使用Metal/MPS
  3. 增加内存: 如果可以,升级到16GB或更高
  4. 关闭后台应用: 训练模型时关闭不必要的程序

📊 性能对比

Apple Silicon vs Intel Mac(相同代码):

任务 M1 (8GB) Intel i5 (16GB) 性能提升
NumPy矩阵运算 0.5s 1.2s 2.4x
Pandas数据处理 1.8s 3.5s 1.9x
Scikit-learn训练 3.2s 5.8s 1.8x
TensorFlow (GPU) 2.1s 8.5s 4.0x

结论: Apple Silicon在机器学习任务上有显著优势!


📝 开始学习

环境配置完成后,从这里开始:

  1. docs/prerequisites.md
  2. docs/learning-path.md
  3. notebooks/stage3/00-quick-start.ipynb

📚 相关文档


最后更新: 2025-11-10 维护者: py_ai_tutorial团队