2. Python 科学计算环境搭建:Anaconda 安装、虚拟环境与库管理
说实话,做数据科学或优化项目,第一步往往不是写代码,而是把环境整明白。我见过太多同学花一小时写模型,结果花一整天装库、调版本。嗯,这章我们就一次性把这事搞定。
2.1 为什么非要用 Anaconda?
Python 自带解释器,但做科学计算时,你需要的不是它。你需要的是 numpy、pandas、scikit-learn、matplotlib……这些库依赖关系复杂,版本冲突能让任何人崩溃。
我个人习惯用 Anaconda。它不只是一个 Python 发行版,还自带 conda 包管理器。conda 能解决依赖冲突,还能创建隔离的虚拟环境。你想想看,一个项目用 Python 3.8 + numpy 1.19,另一个项目用 Python 3.10 + numpy 1.24,要是混在一起,不出问题才怪。
我在项目中遇到过两次版本冲突导致模型训练结果异常的情况。一次是 scikit-learn 的随机种子不一致,另一次是 pandas 的 groupby 行为变化。从那以后,每个项目我都单独建一个虚拟环境。
2.2 Anaconda 安装:两种方式
Anaconda 有两种安装方式:完整版(几百 MB)和精简版 Miniconda(几十 MB)。完整版预装了 150+ 科学计算包,但体积大。Miniconda 只带 conda 和 Python,后续你要什么装什么。
我建议新手先装 Anaconda 完整版,省事。后面熟悉了,再换 Miniconda 也不迟。
安装步骤
- 去 Anaconda 官网下载对应系统(Windows / macOS / Linux)的安装包。选 Python 3.x 版本即可。
- 双击运行,一路默认选项。Windows 用户注意:安装最后一页勾选 "Add Anaconda to my PATH environment variable"(虽然官方不推荐,但新手勾上更方便,后续可以用命令行直接启动)。
- 安装完成后,打开终端(CMD 或 Terminal),输入
conda --version,看到版本号即成功。
# 验证安装
conda --version
# 输出示例:conda 24.1.2
conda init,这样每次打开终端会自动激活 base 环境。Windows 用户如果没勾选 PATH,可以在开始菜单里找到 "Anaconda Prompt" 运行。
2.3 创建虚拟环境:隔离是王道
我一开始也不习惯建环境,觉得麻烦。直到有一次我同时做两个项目,一个需要 TensorFlow 1.x,另一个需要 TensorFlow 2.x,直接崩了。后来我养成了每个项目建独立环境的习惯。
创建虚拟环境的命令很简单。我们给本章课程创建一个环境,取名 optenv,Python 版本 3.9。
# 创建名为 optenv 的环境,指定 Python 3.9
conda create -n optenv python=3.9
# 激活环境(Windows)
conda activate optenv
# 激活环境(macOS/Linux)
source activate optenv # 或 conda activate optenv
一旦激活,Shell 前面会显示 (optenv),表示你已经在环境里了。接下来安装的所有包,都只属于这个环境。
conda create -n 环境名 python=版本号— 创建conda activate 环境名— 激活conda deactivate— 退出当前环境conda env list— 查看所有环境conda remove -n 环境名 --all— 删除环境
2.4 安装科学计算核心库:numpy、pandas、scikit-learn
环境建好了,接下来装库。三个最常用的:
| 库名 | 作用 | 我推荐用 conda 还是 pip? |
|---|---|---|
| numpy | 数值计算、数组操作、线性代数 | conda(预编译,快且稳定) |
| pandas | 数据处理、表格操作、数据清洗 | conda |
| scikit-learn | 机器学习模型、特征工程、评估 | conda(版本较新) |
命令很简单:
# 一次性安装三个库
conda install numpy pandas scikit-learn
# 或者单独安装
conda install numpy
conda install pandas
conda install scikit-learn
安装完成后,验证一下:
# 检查版本
python -c "import numpy; print(numpy.__version__)"
python -c "import pandas; print(pandas.__version__)"
python -c "import sklearn; print(sklearn.__version__)"
如果输出类似:
1.24.3
2.0.3
1.3.0
那就搞定了。我曾经遇到一个坑:用 pip 安装 scikit-learn 的时候,它自动装了 numpy 1.26,但我的 pandas 只支持到 1.24,结果 pandas 挂了。用 conda 安装的话,它会自动解析依赖,选一个兼容的版本。所以,能用 conda 就用 conda。
pip install numpy,结果编译报错,因为缺少 Visual C++ 编译器。换成 conda install numpy 就没事了,conda 下载的是预编译的二进制包。另外,如果你要用 GPU 加速,比如 CUDA,conda 也能处理 cuDNN 的依赖,比 pip 省心很多。
2.5 其他常用科学计算库(按需安装)
除了三件套,我一般还会在项目中安装这些,看需求:
- matplotlib — 画图,必装。
- seaborn — 基于 matplotlib 的统计绘图库,更美观。
- jupyter — 交互式 Notebook,开发效率高。
- scipy — 高级数学函数、优化算法。
- statsmodels — 统计模型、假设检验。
安装也简单:
conda install matplotlib seaborn jupyter scipy statsmodels
2.6 环境导出与克隆:团队协作必备
如果你要和同事共享环境,或者把环境部署到服务器,可以用 environment.yml 文件。
# 导出当前环境的包列表到文件
conda env export > environment.yml
# 从文件重建环境
conda env create -f environment.yml
导出的文件里包含了所有包名称、版本号、来源(conda 或 pip)。别人直接一条命令就能复制你的环境。我在团队开发中经常这么用,节省了无数"怎么我跑不通"的排查时间。