3. Python 环境搭建:Anaconda、RDKit、PyTorch 安装与配置
搞分子属性预测,第一件事就是搭环境。你想想,后面所有模型训练、特征工程、分子图构建全得跑在 Python 上,环境乱了,后面的活儿根本干不下去。我个人习惯用 Anaconda 做环境隔离,RDKit 和 PyTorch 分别装进去,互不干扰。这一章我就把整套流程拆开揉碎了讲,保证你照着来一遍就能跑起来。
3.1 为什么一定要用虚拟环境?
我记得刚入行那会儿,图省事直接 pip install 装了一堆包到系统 Python 里。结果有一天项目 A 需要 RDKit 2020.09,项目 B 需要 RDKit 2021.03,两个版本冲突,整个环境崩了。后来我花了一整个下午重装系统 Python……从那儿以后,我每个项目都老老实实建隔离环境。
Anaconda 的 conda create 就是干这个的。它能给每个项目创建一个独立的 Python 解释器和包集合,互不打架。另外,RDKit 官方强烈推荐用 conda 安装,因为它的底层依赖(比如 Boost、NumPy)版本匹配非常麻烦,pip 装容易栽坑。
所以,我们的目标是:
- 安装 Anaconda(或 Miniconda)
- 创建分子预测专用的虚拟环境
- 用 conda 装 RDKit
- 用 conda 或 pip 装 PyTorch(根据你的 GPU 选版本)
- 验证每个库能正常 import
整个流程跑通了,后面所有章节的代码你都能本地跑。要是卡在某一步,后面我给了常见问题的避坑指南。
conda --version ≥ 4.10。太老的版本有些新功能不支持。另外,硬盘留出至少 5 GB 空间——RDKit 加上 PyTorch 的依赖不小。
3.2 安装 Anaconda 与创建虚拟环境
去 Anaconda 官网下载对应操作系统的安装包(Python 3.10 或 3.9 版本)。安装时记得勾选“Add Anaconda to PATH”(Windows)或者按提示把 conda 加到 shell 里。装好之后,打开终端(或 Anaconda Prompt),先更新一下 conda:
conda update -n base conda
conda config --add channels conda-forge
conda config --set channel_priority strict
这样能保证后面从 conda-forge 装的包是最新且兼容的。然后创建一个新环境,我一般用 Python 3.10:
conda create -n molpred python=3.10 -y
名字 molpred 你可以随便改,但建议别用特殊字符。激活它:
conda activate molpred
激活后,终端前面会出现 (molpred) 字样,说明当前在这个环境里了。以后每次跑项目都要先激活这个环境。
3.3 安装 RDKit
RDKit 是分子指纹、分子图构建的基石。我最早期用 pip 装 RDKit,结果报了一堆“ImportError: libboost_python3.so 找不到”的错误。后来改用 conda,一行命令搞定:
conda install -c conda-forge rdkit -y
这个命令会自动匹配当前 Python 版本、操作系统和 Boost 版本,省去很多头疼的编译问题。安装完后,检查一下:
python -c "from rdkit import Chem; print(Chem.MolFromSmiles('CC'))"
如果不出错,还输出了 <rdkit.Chem.rdchem.Mol object at 0x...>,说明 RDKit 装好了。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/。另外,千万不要在系统 Python 里直接 pip install rdkit-pypi ——那个版本非常老,而且只支持 Linux。
3.4 安装 PyTorch
PyTorch 是深度学习模型的主力框架。它的安装取决于你是否有 NVIDIA GPU。先看机器上的 CUDA 版本:
nvidia-smi # 查看 CUDA 版本(Linux / Windows)
如果没有 GPU 或拿不准,直接用 CPU 版本也够练习用。PyTorch 官网上有个安装选择器,但我一般直接指定版本装:
CPU 版本(通用):
conda install pytorch torchvision torchaudio cpuonly -c pytorch -y
GPU 版本(以 CUDA 11.8 为例):
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia -y
装好后验证:
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"
如果 GPU 版本装对了,torch.cuda.is_available() 应该返回 True。CPU 版本返回 False 是正常的。
3.5 环境验证清单
装完后跑一个整合测试,确保所有库能协同工作:
python -c "
from rdkit import Chem
import torch
# 测试 RDKit 分子构建
mol = Chem.MolFromSmiles('CCO')
print('RDKit:', Chem.MolToSmiles(mol))
# 测试 PyTorch 张量
x = torch.randn(3, 4)
print('PyTorch 张量形状:', x.shape)
"
输出应该类似:
RDKit: CCO
PyTorch 张量形状: torch.Size([3, 4])
如果报了错,别慌。下面我把常见问题列出来,你对照着查一下。
| 问题现象 | 可能原因 | 解决办法 |
|---|---|---|
conda install 卡在 solving environment |
channel 优先级设置不当 | 改回 flexible:conda config --set channel_priority flexible |
from rdkit import Chem 报 DLL 错误 |
conda 环境与系统库冲突 | 重新用 conda-forge 重装 rdkit,确保没用 pip 混装 |
torch.cuda.is_available() 返回 False |
CUDA 版本不匹配 / PyTorch 装了 CPU 版 | 用 conda list | grep pytorch 确认是否带 cuda 标签,卸载重装对应版本 |
| macOS M1/M2 安装失败 | CPU 架构特殊 | 用 conda install pytorch -c pytorch-nightly 或者装 Miniforge 再装 |
3.6 知识体系总览
下面这张图总结了本章的核心结构。你看到每个环节都得走通,后面才能专心写模型。
这张图从左到右、从上到下很清楚地体现了一个道理:环境是地基,根基不牢后面全废。你按照先装 Anaconda → 创建虚拟环境 → 分别装 RDKit 和 PyTorch → 最后验证的次序走,几乎不会出大错。
3.7 最后聊几句
环境调试是最磨耐心的事,但也是最能帮你理解依赖管理的一步。我当初在 RDKit 和 PyTorch 的 CUDA 版本冲突上卡了三天,后来发现是 conda 的 channel_priority 设成了 strict,改成 flexible 就好了。所以,遇到问题别急着重装,先看看错误信息,多半是版本或通道的问题。
这一章的内容到这里就结束了。你已经拥有了一个干净的、分子预测专用的 Python 环境。后面我们就可以正式开始处理分子数据、构建图神经网络了。