4. Python环境搭建

说实话,做空间转录组分析,最让人头疼的不是算法,而是环境。我见过太多同学在跑Scanpy之前先跟包冲突打了一架。别急,这一节咱们就把地基打牢。

我的个人习惯是:每做一个项目就开一个全新的虚拟环境,绝不跟其他项目混着用。为什么?因为numpy、pandas甚至Python版本都可能打架,你想想看,一个项目要scanpy 1.9,另一个要1.7,混在一起就崩了。我在项目中遇到过好几次这种“昨天还能跑今天报错”的灵异事件,最后发现就是一个库悄悄升级了。

4.1 安装Python

Visium空间聚类全流程我们基于Python 3.9~3.11。我个人推荐3.10,因为scanpy和squidpy在这个版本上兼容性最好。

Windows、macOS、Linux通用方式:

  • 去 python.org 下载对应操作系统的安装包。
  • 安装时记得勾选“Add Python to PATH”。
  • Linux用户直接用系统包管理器就好:
sudo apt update
sudo apt install python3.10 python3.10-venv python3.10-dev
⚠ 我曾经… 遇到一个同学直接装了Python 3.12,结果scanpy里某个依赖的numexpr还没适配,装了一下午报错。建议你就用3.10,稳稳的。

验证安装:

python3 --version
Python 3.10.12

4.2 创建虚拟环境

虚拟环境就像一间干净的实验室,不会污染全局的Python。我个人习惯用venv,轻量又自带。conda当然也行,但这里我们只做纯Python项目,venv足够。

创建环境:

# 创建一个名为 visium_spatial 的虚拟环境
python3 -m venv visium_spatial

激活环境:

  • Windows(CMD/PowerShell):
visium_spatial\Scripts\activate
  • macOS / Linux:
source visium_spatial/bin/activate

激活后你会看到命令行前面多了个 (visium_spatial),表示你已经进入环境了。

💡 小技巧: 我个人习惯把虚拟环境建在项目根目录下,比如 /home/user/visium_project/venv。这样删项目时一起删掉,干净利落。

4.3 安装必要库

我们先装核心计算库,再装生物信息学库,最后装可视化库。顺序很讲究——先装numpy和pandas,再装scanpy,否则依赖可能出问题。我早年犯过先装scanpy再装numpy,结果numpy版本被scanpy降级了,其他项目直接崩掉。

下面是完整安装命令(请逐条执行,别一口气全粘):

# 升 pip 到最新
pip install --upgrade pip

# 核心计算
pip install numpy pandas

# 空间转录组分析主力
pip install scanpy squidpy

# 可视化
pip install matplotlib seaborn

# 可选:Jupyter Notebook(强烈建议)
pip install jupyter

注意:squidpy 依赖于 scanpy,但官方建议一起装。我遇到过 squidpy 安装时自动拉了一个老版 scanpy,然后部分API对不上。所以稳妥做法:先装 scanpy 再装 squidpy。

📌 关键版本参考: 这是我测试过的一组合适的版本组合,保证能跑通Visium全流程。
库推荐版本说明
Python3.10.12长期支持,兼容性好
numpy1.24.3不要用2.x,scanpy不兼容
pandas2.0.3稳定版
scanpy1.9.8核心单细胞分析库
squidpy1.2.3空间分析扩展
matplotlib3.7.2标准绘图
seaborn0.12.2统计可视化辅助

4.4 验证安装

装完后,记得检查一下。别不信,我见过有人pip install后以为装好了,结果import时报“ModuleNotFoundError”。

python -c "import numpy; import pandas; import scanpy as sc; import squidpy as sq; import matplotlib; print('All good!')"

如果输出 All good! 说明环境没毛病。如果报错,回去看看是不是版本冲突或者漏装了。

还有一个我常用的验证方式:跑一下scanpy的经典测试数据集。它能帮我快速确认所有底层依赖(比如anndata、h5py、umap-learn)都正常工作。

import scanpy as sc
adata = sc.datasets.pbmc3k()   # 下载一个小数据集
sc.pp.filter_cells(adata, min_genes=200)
sc.pp.filter_genes(adata, min_cells=3)
print(adata)

能看到 AnnData object 的概要信息,说明环境OK,可以开始分析啦。

4.5 环境搭建整体流程(一张图说清楚)

Python环境搭建整体流程 环境搭建流程(5步搞定) 1. 安装 Python 3.10 2. 创建 venv 环境 3. 激活虚拟环境 4. 安装 numpy pandas scanpy squidpy ... 5. 验证所有包正常导入 💡 为什么要按顺序? 先装Python → 再建环境 → 激活后装库 保证依赖唯一且可控 避免全局污染 scanpy 和 numpy 的 版本绑定较多

以上就是Python环境搭建的全部内容。你按这个顺序走,一般不会出问题。如果遇到奇怪的报错,多半是版本冲突,回到上一步重建环境就好了——别在一个坏环境里死磕,我当年debug过两天最后发现就是numpy版本不对,白白浪费时间。记住:干净的环境是高效分析的第一步。