Python 环境与工具准备
到了这一章,咱们该把战斗装备备齐了。我个人习惯把环境搭建比作做饭前的备菜——菜没切好,锅里油热了也只能干瞪眼。MolProbity 报告批量解析,说白了就是让 Python 替我们干活。但前提是电脑里得有个干净、好使的 Python 环境。
记得我刚入行那会,觉得装个 Python 能有多难?结果直接在系统默认 Python 里 pip install 一大堆库,过了一个月发现想要个新版本,一升级,老的脚本全崩了。那滋味,嗯… 从那以后,虚拟环境就成了我工具箱里不可缺的东西。
这一章咱们就把 Anaconda 装上,建好虚拟环境,然后把后期会反复用到的四个库(re、pandas、matplotlib、beautifulsoup4)一个不落装进去。你跟着来就行,十分钟搞定。
3.1 Anaconda 的安装
Anaconda 是什么?你可以把它当成一个 Python 的“全家桶”。它自带 conda 包管理器,还预装了 200 多个数据科学常用包。对我们这种要处理生物信息学数据的人来说,真挺省事。
但我个人的建议是:下 Miniconda。它更轻量,装完就一个最小环境,想装什么自己 pip 或 conda install。尤其你如果只是跑脚本,没必要拖着一堆你用不上的库。
安装步骤很简单:
- 去官网( https://docs.conda.io/en/latest/miniconda.html )下载对应你操作系统的安装包。
- Windows 直接双击 .exe,一路下一步就行。
- Linux / macOS 用命令行跑:
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 |
删除整个环境 |
(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 环境里运行。
我把本章的核心流程画了一张图,方便你一眼看清整个准备工作的顺序:
这张图里的顺序很清晰:装好 Miniconda → 创建专属环境 → 装 re(不用装)和 pandas/matplotlib/beautifulsoup4 → 最后跑一下测试脚本收工。环境搭好了,后面我们就能放开手脚去解析那些密密麻麻的 MolProbity 报告了。