3、Python环境准备:Anaconda安装、虚拟环境创建、必备库安装与验证
搞组织发育空间分析,环境配置是第一道坎。我见过不少同学在这步卡了好几天,装了一堆库却发现版本冲突,最后不得不全部重来。其实只要按部就班,半小时就能搞定。
3.1 Anaconda的下载与安装
Anaconda是目前最省事的Python发行版,自带conda包管理器和许多常用科学计算库。我个人习惯用Miniconda——它更轻量,只保留核心组件,后续需要什么装什么。
一点建议:别从官网下载Anaconda的完整版(超过800MB),直接选Miniconda(不到100MB)。我在服务器上部署时都用Miniconda,省空间也快。
下载地址这里不贴链接了,你直接搜「Miniconda」就能找到。安装时留意两个选项:
- 安装路径不要有中文或空格
- 勾选「Add to PATH」——虽然安装器会警告,但我建议勾上,省得后续手动配环境变量
注意:Windows用户安装完成后,记得重新打开命令行或PowerShell。我曾经因为忘记重启,直接运行conda命令报错“不是内部或外部命令”,折腾了半天才发现。
3.2 虚拟环境创建与激活
为什么一定要用虚拟环境?说白了就是隔离依赖。每个项目都有自己的Python版本和库组合,互不干扰。比如scanpy需要Python 3.8~3.11,squidpy要求某些特定版本,如果全装在base环境里,迟早会打架。
我通常按项目名加Python版本创建环境,比如:
conda create -n spatial_omics python=3.9 -y
激活环境的命令因系统而异:
- Windows:
conda activate spatial_omics - Linux / macOS:
conda activate spatial_omics
验证一下环境是否成功:
python --version
# 输出应为 Python 3.9.x
conda info --envs
# 列表中应该包含 spatial_omics 环境,且前面有 * 号标记当前环境
3.3 必备库安装
空间转录组分析的核心库是以下这些:
| 库名 | 一句话用途 | 安装方式 |
|---|---|---|
| scanpy | 单细胞分析基础设施,处理表达矩阵、聚类、降维 | pip install scanpy |
| squidpy | 空间转录组专用库,识别组织区域、空间自相关 | pip install squidpy |
| numpy | 数值计算,几乎所有库的底层依赖 | conda install numpy |
| pandas | 表格操作,处理元数据、结果输出 | conda install pandas |
| matplotlib | 静态可视化,基础绘图工具 | conda install matplotlib |
| seaborn | 统计图表美化,heatmap、violin图等 | conda install seaborn |
| pytorch | 深度学习框架,用于空间域识别、自编码器等模型 | 按官网选择cuda版本 |
安装顺序我建议先装基础库,再装空间分析库,避免依赖冲突。直接贴我的常用安装命令:
conda activate spatial_omics
# 基础库
conda install numpy pandas matplotlib seaborn -y
# 生物信息学库
pip install scanpy squidpy
# PyTorch(根据你的CUDA版本选择,这里以CPU版为例)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
避坑指南:我曾在安装squidpy时遇到依赖报错,因为conda和pip混用导致scanpy版本不兼容。现在我统一用pip装scanpy和squidpy,conda只装系统级库,混用要格外小心。
3.4 环境验证
装完不能直接相信,必须验证。写一个小脚本来检查所有库是否可以正常导入,并打印版本号:
import numpy
import pandas
import matplotlib
import seaborn
import scanpy
import squidpy
import torch
print("numpy:", numpy.__version__)
print("pandas:", pandas.__version__)
print("matplotlib:", matplotlib.__version__)
print("seaborn:", seaborn.__version__)
print("scanpy:", scanpy.__version__)
print("squidpy:", squidpy.__version__)
print("torch:", torch.__version__)
你可以把这段代码保存为 check_env.py,然后在激活的环境下运行:
python check_env.py
输出类似这样就算成功:
numpy: 1.24.3
pandas: 2.0.3
matplotlib: 3.7.2
seaborn: 0.12.2
scanpy: 1.9.6
squidpy: 1.2.3
torch: 2.1.0
如果某一行报错 ModuleNotFoundError,说明对应的库没装上。别怕,回过头重新安装那个包就行,大部分问题都是网络不稳定导致下载失败。
一点经验:我经常在笔记本上同时维护两个环境——一个稳定版(装好了就不动),一个实验版(用来测试新库)。这样即使实验版搞坏了,直接用稳定版继续工作。
3.5 本章知识体系
下面这张SVG图把整个环境搭建的流程串起来了,你可以对照着一步一步走:
环境搭好只是第一步,但这步稳了,后面跑分析的时候就能少很多莫名其妙的报错。我每次给新同事培训,第一件事就是让他们亲手搭一遍环境,踩一遍坑。结果证明,自己装过一次的人,后面出问题排查效率高得多。