跳到主要内容

创建和管理 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 installPython 生态中的普通包、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 检查缺少哪个包,重新安装即可。