在 macos 上推荐用 miniconda 管理科学计算环境,先创建独立环境(如 conda create -n science python=3.11),再用 conda 安装核心包,必要时用 pip --no-deps 补充,最后通过 environment.yml 导出与复现环境。

在 macOS 上用 Anaconda 管理科学计算依赖环境,核心是利用 Conda 的跨平台环境隔离能力,避免系统 Python 与科研包(如 NumPy、PyTorch、SciPy)之间的版本冲突和权限问题。
安装 Anaconda 或 Miniconda(推荐 Miniconda)
Anaconda 体积大(约 3GB),预装大量包;Miniconda 更轻量(约 50MB),只含 Conda 和 Python,适合主动控制依赖。访问 conda 官网 下载 macOS 对应版本(Apple Silicon 芯片选 arm64,Intel 芯片选 x86_64)。安装后终端会自动加载 conda 命令,可通过 conda --version 验证。
创建专用的科学计算环境
不建议在 base 环境中直接安装科研包。用以下命令新建一个带指定 Python 版本的干净环境:
-
conda create -n science python=3.11(创建名为 science 的环境,Python 3.11) -
conda activate science(激活该环境,提示符前会出现 (science)) -
conda install numpy pandas matplotlib scikit-learn(批量安装常用科学计算包)
Conda 会自动解析依赖并安装兼容版本,比 pip 更擅长处理 Fortran/C 扩展(如 SciPy)和二进制兼容性问题。
混用 Conda 与 Pip 的注意事项
当某个包仅在 PyPI 提供(如 optuna 或较新的 transformers),可在已激活的 conda 环境中用 pip 安装,但需遵守顺序:
- 先用 conda 安装尽可能多的核心依赖(如 numpy、pytorch)
- 再用
pip install --no-deps安装 pip-only 包(避免覆盖 conda 已管理的底层库) - 切勿在 conda 环境中运行
pip install后又执行conda update --all,可能引发冲突
若出错,可快速回退:conda deactivate && conda env remove -n science,再重建环境。
环境导出与复现(团队协作/部署必备)
用以下命令生成可复现的环境文件:
-
conda env export > environment.yml(导出含精确版本号的完整环境) -
conda env create -f environment.yml(在另一台 macOS 机器上一键重建)
如需精简(去掉 build 号等平台相关字段),可用 conda env export --from-history > environment.yml,它只记录你手动执行过的 conda/pip install 命令,更利于跨平台共享。
不复杂但容易忽略:每次新开终端需重新 conda activate science;可将 conda activate science 加入 ~/.zshrc 实现默认激活(仅限日常开发,非生产环境推荐)。










