Python 环境与工具准备

到了这一章,咱们该把战斗装备备齐了。我个人习惯把环境搭建比作做饭前的备菜——菜没切好,锅里油热了也只能干瞪眼。MolProbity 报告批量解析,说白了就是让 Python 替我们干活。但前提是电脑里得有个干净、好使的 Python 环境。

记得我刚入行那会,觉得装个 Python 能有多难?结果直接在系统默认 Python 里 pip install 一大堆库,过了一个月发现想要个新版本,一升级,老的脚本全崩了。那滋味,嗯… 从那以后,虚拟环境就成了我工具箱里不可缺的东西。

这一章咱们就把 Anaconda 装上,建好虚拟环境,然后把后期会反复用到的四个库(re、pandas、matplotlib、beautifulsoup4)一个不落装进去。你跟着来就行,十分钟搞定。

3.1 Anaconda 的安装

Anaconda 是什么?你可以把它当成一个 Python 的“全家桶”。它自带 conda 包管理器,还预装了 200 多个数据科学常用包。对我们这种要处理生物信息学数据的人来说,真挺省事。

但我个人的建议是:下 Miniconda。它更轻量,装完就一个最小环境,想装什么自己 pip 或 conda install。尤其你如果只是跑脚本,没必要拖着一堆你用不上的库。

安装步骤很简单:

bash Miniconda3-latest-Linux-x86_64.sh

有个小坑我踩过:安装时它问要不要把 conda 加到 PATH,一定要选 yes。不然你装完了在终端敲 conda 发现找不到命令,还得手动去配环境变量,烦得很。

小技巧:装完后重启一下终端,或者 source ~/.bashrc 让配置生效。

3.2 虚拟环境创建与管理

为什么要搞虚拟环境?你想想看,你同时维护着三四个项目,一个需要 pandas 1.0,另一个需要 2.0。如果你全装全局,那冲突起来就是一场灾难。虚拟环境让每个项目拥有独立的 Python 解释器和包目录,互不干扰。

我一般会给每个项目一个环境名,比如这里我们用来解析 MolProbity 报告,我就命名为 molprobity。

创建环境:

conda create -n molprobity python=3.9

注意,我习惯指定 python 版本。3.9 足够稳定,而且也兼容后面要用的 pandas 和 beautifulsoup4。你也可以用 3.10 或 3.11,但别用最新的 3.12 以上,有些库可能还没适配好。

激活环境:

conda activate molprobity

退出环境:

conda deactivate

常用命令我列了个小表格,你以后随时查:

命令 说明
conda create -n 环境名 python=版本号 创建新环境
conda activate 环境名 激活环境
conda deactivate 退出当前环境
conda list 查看当前环境已安装的包
conda remove -n 环境名 --all 删除整个环境
注意:我曾经在激活环境后没有留意终端的提示符,误以为还在 base 环境,结果把包装错了地方。建议你每次看到命令行前面带 (molprobity) 或别的环境名,再放心操作。

3.3 必备库安装

四个库,一个一个说。

  • re —— 正则表达式,Python 标准库,不用装,拿来就能用。
  • pandas —— 表格数据处理神器,用来把 MolProbity 报告里的数据整理成 DataFrame。
  • matplotlib —— 画图,后面你要把验证结果、得分分布可视化就靠它。
  • beautifulsoup4 —— 解析 HTML 的利器。MolProbity 报告本质是 HTML 表格,我们用 bs4 把它抽出来。

激活环境后,执行:

pip install pandas matplotlib beautifulsoup4

你也可以用 conda 装,但 conda 源里的包可能不是最新的,我习惯用 pip。如果你网速慢,可以加上 -i https://pypi.tuna.tsinghua.edu.cn/simple 用国内镜像。

装完之后顺手验证一下版本:

python -c "import pandas; print(pandas.__version__)"
python -c "import matplotlib; print(matplotlib.__version__)"
python -c "import bs4; print(bs4.__version__)"
python -c "import re; print(re.__version__)"  # re 没有 __version__,这里会报错,没关系

我遇到过最郁闷的事:用 pip 装完包,发现 conda list 里看不到。其实这是正常的,pip 和 conda 两个包管理器互不知晓。如果你非要统一管理,就全程用 pip 吧。

3.4 环境验证

最后咱们写一段小脚本,把工具全拉出来遛一遛。能跑通,说明环境准备完成,后面就可以直接上手解析报告了。

# test_env.py
import re
import pandas as pd
import matplotlib.pyplot as plt
from bs4 import BeautifulSoup

print("所有库导入成功!")

# 简单测试 pandas
df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
print("pandas 生成 DataFrame:")
print(df)

# 简单测试 matplotlib
plt.plot([1, 2, 3], [1, 4, 9])
plt.title('Test Plot')
plt.savefig('test_plot.png')
print("matplotlib 绘图并保存成功")

# 简单测试 bs4
soup = BeautifulSoup('<html><body><p>Hello</p></body></html>', 'html.parser')
print("bs4 解析 HTML 结果:", soup.find('p').text)

# 简单测试 re
pattern = re.compile(r'\d+')
print("re 匹配数字:", pattern.findall('abc123def456'))

保存为 test_env.py,然后在终端运行:

python test_env.py

如果看到类似这样的输出,说明环境完美:

所有库导入成功!
pandas 生成 DataFrame:
   A  B
0  1  3
1  2  4
matplotlib 绘图并保存成功
bs4 解析 HTML 结果: Hello
re 匹配数字: ['123', '456']
环境搭建完成。 后续章节的代码都默认在这个 molprobity 环境里运行。

我把本章的核心流程画了一张图,方便你一眼看清整个准备工作的顺序:

环境准备流程 1. 下载安装Miniconda 2. 创建虚拟环境 re (内置) 3. 安装三件套 4. 测试验证 提示 使用 conda activate molprobity 进入环境再安装。 pip install 后建议用 python 验证版本。

这张图里的顺序很清晰:装好 Miniconda → 创建专属环境 → 装 re(不用装)和 pandas/matplotlib/beautifulsoup4 → 最后跑一下测试脚本收工。环境搭好了,后面我们就能放开手脚去解析那些密密麻麻的 MolProbity 报告了。