创建和管理 Conda 环境
什么是 Conda 环境
Conda 环境可以理解为一个独立实验台。不同实验台上可以放不同试剂,互相不会污染。
在编程中,不同项目可能需要不同版本的 Python 和不同的包:
- 一个图像处理项目需要 OpenCV 和 scikit-image
- 一个深度学习项目需要 PyTorch 1.13
- 一个论文作图项目只需要 matplotlib 和 pandas
- 一个旧项目可能需要 Python 3.8,而新项目需要 Python 3.11
如果全部装在同一个环境里,版本冲突几乎是必然的。Conda 环境就是用来解决这个问题的。
为什么不要把所有东西都装进 base 环境
base 是 Conda 默认的根环境。它相当于实验室的总控室,不是用来做具体实验的。
不要把所有包都装进 base 环境。 一旦 base 环境装乱了,排查起来非常困难,而且可能影响 conda 工具本身。保持 base 干净,每个项目用独立的命名环境。
推荐环境命名
环境名建议只使用英文小写字母、数字、下划线或短横线,不要使用中文和空格。
推荐示例:
organchip # 本教程使用的环境名
if-image # 免疫荧光图像处理
comsol-data # COMSOL 仿真数据处理
pytorch-gpu # PyTorch GPU 环境
paper-figures # 论文作图
本教程统一创建一个名为 organchip 的环境,你后面所有的教程都可以继续在这个环境里进行。
创建 organchip 环境
打开 Anaconda Prompt(或 macOS / Linux 的 Terminal),输入:
conda create -n organchip python=3.11
逐词解释:
conda create:创建一个新环境-n organchip:环境名字叫 organchip(-n 是 --name 的缩写)python=3.11:在这个环境里安装 Python 3.11
过程中会显示将要安装的包列表,然后提示:
Proceed ([y]/n)?
输入 y 然后回车,等待安装完成。你会看到类似这样的输出:
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
激活环境
创建完成后,激活这个环境:
conda activate organchip
激活后,命令行前面的提示会改变。你会看到类似:
(organchip) C:\Users\你的用户名>
括号里的 (organchip) 表示你当前正在使用 organchip 环境。
查看当前 Python 版本和路径
确认当前 Python 确实是 organchip 环境里的:
python --version
还会输出类似 Python 3.11.x。
更重要的是查看 Python 的完整路径:
python -c "import sys; print(sys.executable)"
这会输出当前 Python 的完整路径,应该是类似:
C:\Users\你的用户名\miniconda3\envs\organchip\python.exe
记住这个命令。 以后任何"包装了但找不到""代码环境不对"的问题,都先用这个命令确认当前用的是哪个 Python。
安装科研基础包
激活 organchip 环境后,安装常用科研包:
conda install numpy pandas matplotlib scipy scikit-learn openpyxl
包的作用:
| 包名 | 作用 |
|---|---|
| numpy | 数组和数值计算。所有科学计算的基础 |
| pandas | 表格数据处理。读取 Excel/CSV,统计分组 |
| matplotlib | 科研绘图。折线图、散点图、柱状图、热图 |
| scipy | 科学计算和统计。t-test、信号处理、插值 |
| scikit-learn | 机器学习基础工具。分类、回归、聚类 |
| openpyxl | 读取和写入 Excel 文件 |
提示 Proceed 时输入 y 回车。
安装 OpenCV(图像处理)
OpenCV 常用于读取和处理显微图像。用 pip 安装:
pip install opencv-python
conda install 和 pip install 有什么区别
| 命令 | 更适合安装什么 | 特点 |
|---|---|---|
| conda install | 科学计算包、底层依赖复杂的包 | 更擅长处理二进制依赖,安装更可靠 |
| pip install | Python 生态中的普通包、conda 没有的包 | 包更多,但有时需要自己处理依赖冲突 |
建议原则:
- 能用 conda 安装的科学计算包,优先用 conda
- conda 找不到或版本不合适时,再用 pip
- 先 conda 后 pip,不要混着装个不停
- 如果 conda 和 pip 都装过同一个包,可能出现版本混乱
查看已安装的包
conda list
这会列出当前环境中所有包的名称、版本和来源(conda 还是 pip)。
查看所有环境
conda env list
输出类似:
# conda environments:
#
base * C:\Users\用户名\miniconda3
organchip C:\Users\用户名\miniconda3\envs\organchip
星号 * 标记的是当前激活的环境。
退出当前环境
conda deactivate
退出后,提示符前的 (organchip) 会消失,回到 base 环境。
删除环境(谨慎操作)
如果某个环境不再需要:
conda remove -n organchip --all
删除环境会同时删除该环境中安装的所有包。删除前请确认你没有重要的代码或数据依赖这个环境。
导出环境配置(方便分享和复现)
把当前环境的包列表导出为文件:
conda env export > environment.yml
这会生成一个 environment.yml 文件。同事拿到这个文件后,可以完全复现你的环境。
从 environment.yml 复现环境
如果你拿到了别人的 environment.yml:
conda env create -f environment.yml
然后激活:
conda activate organchip
推荐的 environment.yml 示例
name: organchip
channels:
- conda-forge
- defaults
dependencies:
- python=3.11
- numpy
- pandas
- matplotlib
- scipy
- scikit-learn
- openpyxl
- pip
- pip:
- opencv-python
把这个内容保存为 environment.yml,以后可以在任何电脑上用一条命令重建环境。
测试环境是否可用
最后,运行这行代码来验证所有基础包都能正常导入:
python -c "import numpy, pandas, matplotlib, scipy, sklearn, cv2; print('Environment is ready!')"
如果看到输出:
Environment is ready!
说明 organchip 环境配置成功,所有基础包都可以正常使用。
如果报错 ModuleNotFoundError,说明某个包没有成功安装。用 conda list 检查缺少哪个包,重新安装即可。