3. 开发环境搭建:Python、Jupyter、IDE
说到环境搭建,很多新手喜欢直接装个 Anaconda 全家桶。我个人习惯却不太一样——我更倾向于轻装上阵。你想,一个批次质控模块,用到的库无非是 pandas、numpy、matplotlib 这些,没必要把整个数据科学大礼包都塞进来。
今天我就带你从零搭一套干净、可控的开发环境。每一步我都会把自己踩过的坑讲清楚。
3.1 Python 安装与虚拟环境
Python 版本选哪个?我的建议是 3.9 或 3.10。为什么?3.11 以后某些科学计算库的预编译包还不全,3.8 以下又太老了。我在项目里碰到过一次因为 Python 3.11 的 ABI 变化,导致 pyodbc 装不上,折腾了大半天。从此我就学乖了:不追最新版,选最稳的。
下载安装包直接去 python.org,别去微软商店。装的时候记得勾上 "Add Python to PATH"。这一点我说了多少次——勾上它,省去后面一堆麻烦。
python --version
pip --version
应该看到 Python 3.9.x 或 3.10.x。如果提示 "python" 找不到,试试 python3 命令。
3.2 虚拟环境:项目隔离的命根子
你做过很多项目之后就明白了——不同项目依赖不同的库版本。比如项目 A 用 pandas 1.5,项目 B 需要 pandas 2.0。要是全装到全局,那简直是一场灾难。
我推荐用 venv,它是 Python 自带的,不需要额外装。也有不少人用 conda,但做普通 Python 项目 venv 完全够用。
创建虚拟环境很简单:
# 在项目目录下执行
python -m venv venv_bqc
# 激活(Windows)
venv_bqc\Scripts\activate
# 激活(macOS/Linux)
source venv_bqc/bin/activate
激活之后你会看到命令提示符前面多了个 (venv_bqc),说明你已经在虚拟环境里了。
venv 目录建在项目根目录下,并加入 .gitignore。
3.3 Jupyter:交互式探索的利器
做质控分析,Jupyter 几乎是必需品。你可以边写边运行,看到中间结果随时调整,这比写一个大脚本再 run 要高效得多。
安装也是 pip 一行搞定:
# 在虚拟环境里装
pip install jupyter
启动方式:
# 传统界面 jupyter lab # 新版界面,我推荐用这个jupyter notebook
我个人更喜欢 Jupyter Lab。它的文件浏览器、多标签页、终端集成比 Notebook 好用太多。举个例子,你可以左边开一个 .py 文件写函数,右边开一个 .ipynb 文件测试,中间还能开个终端跑 pip install。这种工作流在做质控模块开发时特别顺手。
3.4 IDE 选择:我的首选是 VS Code
说到编辑器,我见过有人用 PyCharm,有人用 Sublime,还有人用 Vim。我这些年换了一圈,最后固定在 VS Code。为什么?三个字:轻、快、扩展多。
VS Code 装好之后,把这些扩展装上:
| 扩展名 | 作用 | 我的评价 |
|---|---|---|
| Python (by Microsoft) | 代码补全、调试、Linting | 必装,没有它 VS Code 就是个记事本 |
| Jupyter | 在 VS Code 里跑 .ipynb | 省去了来回切换浏览器,效率翻倍 |
| Pylance | 类型提示、智能补全 | 跟 Python 扩展一起装,静默增强体验 |
| GitLens | Git 历史、对比 | 质控模块经常要回退改版,这个帮大忙 |
配置 Python 解释器的时候,记得选你自己的虚拟环境路径。操作很简单:按 Ctrl+Shift+P,输入 "Python: Select Interpreter",然后找到 venv_bqc\Scripts\python.exe。
3.5 必备 Python 库一览
做批次质控,这些库你得先装上:
pip install pandas numpy matplotlib seaborn
pip install scipy openpyxl # 统计 + Excel 读写
pip install pytest # 单元测试(后面章节会讲)
装完之后验证一下:
python -c "import pandas; print(pandas.__version__)"
要是没报错,说明环境就绪了。
3.6 完整工作环境图谱
下面这张图总结了我们今天的搭建成果。从系统 Python 出发,经过虚拟环境隔离,再装 Jupyter 和 VS Code 插件,最后配上所需的第三方库——这就是一个适合批次质控模块开发的工作台。
- 终端前缀显示
(venv_bqc)了吗? - VS Code 解释器指向了虚拟环境吗?
pip list能看到 pandas、numpy 等库吗?
3.7 我的一点补充心得
说了这么多工具,其实最核心的原则就一条:环境越干净,后期越省心。我早期做质控项目时,为了省事直接在全局装库。结果后来同时接了两个项目,一个依赖 numpy 1.19,另一个需要 numpy 1.24,两个项目在同一个机器上互相打架,改一个就垮另一个。那之后我就老老实实每个项目建独立虚拟环境,再也没出过这种低级问题。
另外,记得把依赖冻结下来:
pip freeze > requirements.txt
这个文件扔进 Git,别人 clone 了项目直接 pip install -r requirements.txt 就能还原一模一样的环境。这才是团队协作的标配做法。