在 macOS 上用 Conda 管理数据科学依赖的关键是环境隔离、分层安装与精确导出;推荐 Miniconda,用 environment.yml 导出快照或 --from-history 保证跨平台稳定性,重建统一用 conda env create -f environment.yml。
在 macos 上用 conda 管理数据科学项目的依赖包,关键是靠环境隔离 + 分层安装 + 精确导出。不直接动系统 python,也不在 base 环境里堆包,就能避开 90% 的版本冲突和编译失败问题。
选 Miniconda 而不是 Anaconda
Mac 用户推荐从 Miniconda 入手:体积小(
- Apple Silicon(M1/M2/M3)芯片选 arm64 版本;Intel 芯片选 x86_64
- 安装后运行
conda --version验证是否就绪 - 终端自动加载命令,无需手动改 PATH(新版安装器默认完成)
为每个项目建独立环境
别用 base 环境跑项目代码。每个数据科学项目对应一个命名清晰、Python 版本明确的环境,比如:
-
conda create -n nlp-py311 python=3.11(NLP 项目,PyTorch 生态常用) -
conda create -n cv-py310 python=3.10(计算机视觉,兼容旧版 CUDA 工具链) - 创建时可直接加常用包:
conda create -n ml-basic python=3.11 numpy pandas matplotlib scikit-learn
激活后提示符会显示环境名,如 (nlp-py311) $,这是当前生效环境的明确信号。
Conda 为主,pip 为辅,顺序不能乱
Conda 擅长处理含 C/Fortran 扩展的科学包(如 NumPy、SciPy、PyTorch),而 pip 更适合安装 PyPI 独占包(如 optuna、datasets、新版本 transformers)。
- 先用
conda install装核心依赖(包括pytorch、cuda-toolkit等) - 再用
pip install --no-deps补充 pip-only 包(避免 pip 覆盖 conda 管理的底层库) - 切忌在 conda 环境中执行
pip install后又运行conda update --all,极易引发二进制不兼容
用 environment.yml 实现环境复现
团队协作或换机器部署时,靠人工记安装命令不可靠。推荐两种导出方式:
-
conda env export > environment.yml:导出完整快照(含 build 号),适合同平台复现(如两台 M2 Mac) -
conda env export --from-history > environment.yml:只记录你手动敲过的conda install和pip install命令,跨平台更稳定(例如从 macOS 到 Linux 服务器) - 重建命令统一为:
conda env create -f environment.yml
每次新开终端需重新 conda activate;日常开发可将该命令写入 ~/.zshrc,但生产环境请保持手动激活习惯。


















