2. 环境搭建:Python、PyTorch与RDKit安装,虚拟环境配置,GPU支持验证

搞AI药物发现,环境搭不好,后面全是坑。我见过太多同学花一周配环境,最后发现GPU没用上,模型跑三天三夜白费功夫。这一章咱们就把地基打牢,一步到位。

2.1 为什么需要虚拟环境

说白了,虚拟环境就是给你的项目隔出一个小房间。每个项目有自己的Python版本、包依赖,互不干扰。

举个例子。你手头有两个项目:一个用PyTorch 1.13,另一个用PyTorch 2.0,它们依赖的CUDA版本还不一样。没有虚拟环境的话,你只能二选一,或者把系统搞得乱七八糟。我去年有个项目,就是因为在base环境里装了一堆包,最后依赖冲突到没法修,索性把整个Anaconda重装了——折腾一整天。

核心原则:每个项目一个独立环境,永远不要在base环境里装项目依赖。

2.2 Python版本选择

做ADMET建模,Python 3.9到3.11是目前最稳妥的选择。为什么这样说?

  • Python 3.9:兼容性最好,老项目迁移首选
  • Python 3.10:性能有提升,目前PyTorch官方推荐
  • Python 3.11:速度更快,但部分老库可能还没适配
Python版本 PyTorch支持 RDKit支持 推荐场景
3.9 稳定 稳定 迁移旧项目
3.10 稳定 稳定 新项目首选
3.11 部分版本 2023.03+ 尝鲜或追求性能

我个人习惯用Python 3.10,平衡了兼容性和性能。你如果拿不准,也选3.10准没错。

2.3 虚拟环境配置实战

有两种主流方式:conda 和 venv。做药物化学相关的工作,我强烈推荐conda——它对RDKit这类有C++后端的包支持得更好。

2.3.1 安装Miniconda

去官网下载Miniconda。嗯,别下Anaconda,太大,里面一堆你用不到的包。

# 安装完成后,验证一下
conda --version
# 输出应该是类似:conda 23.10.0

2.3.2 创建虚拟环境

# 创建名为admet_env的环境,指定Python版本
conda create -n admet_env python=3.10

# 激活环境
conda activate admet_env

# 验证Python版本
python --version

小技巧:环境名别起太长,不然每次激活都要打一堆字。我常用缩写,比如"admet"、"dmpk"之类。

2.4 PyTorch安装与GPU支持

PyTorch是深度学习建模的核心。安装时最关键的,是匹配好CUDA版本。

2.4.1 查看你的GPU和CUDA能力

先搞清楚你机器上有什么硬件。我在项目中遇到过最头疼的事,就是在没有GPU的机器上装了GPU版PyTorch,一跑就报错。

# 查看NVIDIA驱动信息
nvidia-smi

# 输出中的CUDA Version就是驱动支持的最高版本
# 比如:CUDA Version: 12.1

2.4.2 安装PyTorch

去PyTorch官网(pytorch.org)用它的配置器生成安装命令。记住:一定要选对CUDA版本。

# 以CUDA 12.1为例
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

# 或者用conda(推荐,依赖处理更好)
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia

2.4.3 GPU支持验证

装完之后,别急着往下走。先跑个验证脚本,确保GPU真的能用。

python -c "import torch; print(torch.cuda.is_available())"
# 应该输出:True

python -c "import torch; print(torch.cuda.get_device_name(0))"
# 输出你的GPU型号,比如:NVIDIA GeForce RTX 4090

避坑指南:我曾经装完PyTorch后torch.cuda.is_available()返回False,折腾了两小时才发现是CUDA Toolkit版本和驱动不匹配。解决方法是先升级NVIDIA驱动,再重装PyTorch。驱动版本一定要 >= PyTorch要求的CUDA版本。

2.5 RDKit安装

RDKit是处理化学分子结构的核心工具。按我的经验,conda安装最省心。

# 在激活的环境中安装RDKit
conda install -c conda-forge rdkit

# 验证安装
python -c "from rdkit import Chem; print(Chem.MolFromSmiles('CCO'))"
# 输出应该是一个分子的内存地址,比如:

2.6 其他必备科学计算库

做ADMET建模,下面这些库也跑不掉,顺手装了吧。

# 科学计算基础
conda install numpy pandas scikit-learn scipy

# 可视化
conda install matplotlib seaborn

# 进度条(跑大模型的时候很有用)
pip install tqdm

# 数据处理
pip install openpyxl  # 处理Excel文件

2.7 环境验证全流程

最后,把整个环境串起来验证一遍。我通常会写一个这样的脚本:

import sys
import torch
import numpy as np
from rdkit import Chem

print(f"Python版本: {sys.version}")
print(f"PyTorch版本: {torch.__version__}")
print(f"CUDA可用: {torch.cuda.is_available()}")
if torch.cuda.is_available():
    print(f"GPU型号: {torch.cuda.get_device_name(0)}")
    print(f"CUDA版本: {torch.version.cuda}")
print(f"NumPy版本: {np.__version__}")

# 测试RDKit
mol = Chem.MolFromSmiles("CCO")
print(f"RDKit分子对象: {mol}")

# 测试PyTorch在GPU上的张量运算
if torch.cuda.is_available():
    x = torch.randn(3, 3).cuda()
    y = torch.randn(3, 3).cuda()
    z = x @ y
    print(f"GPU矩阵运算测试通过: {z.shape}")

跑完这个脚本,如果所有输出都正常,恭喜你,环境搭好了。

一句话总结:好的环境是成功建模的一半。花半小时配好环境,能省下后面几十小时的调试时间。

ADMET建模环境搭建流程 CUDA + cuDNN + NVIDIA驱动 虚拟环境管理器 CondA(推荐 ⭐) venv RDKit友好 轻量 Python 3.10 + 虚拟环境 PyTorch 深度学习框架 RDKit 分子处理 NumPy/Pandas 数据处理 ✅ GPU支持验证 + 完整环境测试 🔄 整个流程是递进的:驱动 → 环境管理器 → Python环境 → 核心库 → 验证测试