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命令):
Step 3: 安装uv¶
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¶
🎮 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加速示例:
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
解决方案:
问题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中选择新内核
🚀 性能优化建议¶
- 使用ARM64原生版本: 优先选择支持ARM64的包
- 启用GPU加速: 深度学习任务使用Metal/MPS
- 增加内存: 如果可以,升级到16GB或更高
- 关闭后台应用: 训练模型时关闭不必要的程序
📊 性能对比¶
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在机器学习任务上有显著优势!
📝 开始学习¶
环境配置完成后,从这里开始:
📚 相关文档¶
最后更新: 2025-11-10 维护者: py_ai_tutorial团队