环境准备:搭建你的实战工坊
说实话,很多人学自动化脚本,一上来就急着写代码。结果跑起来各种报错,最后发现是环境没配好。我见过太多这样的情况了。
所以这一章,咱们先把“工坊”搭起来。工具对了,活才能干得快。
选对Python版本
我个人习惯用Python 3.10+。为什么?因为很多新特性更稳定,三方库的支持也最全。
千万别再纠结Python 2还是Python 3了。Python 2已经退役了,你在网上找到的很多告警处置案例,也是基于Python 3写的。
| 对比项 | Python 2.x | Python 3.x(推荐) |
|---|---|---|
| 官方支持 | 2020年已停止 | 持续维护 |
| 编码默认 | ASCII | UTF-8 |
| 字符串处理 | 麻烦 | 统一且友好 |
| 三方库兼容 | 很多已不更新 | 主力支持 |
虚拟环境:隔离你的项目
你在做告警处置脚本时,肯定会装一堆库。如果全都怼到系统Python里,一旦项目多了,库版本冲突就能让你崩溃。
我曾经在一个项目里,就因为这个吃了大亏。脚本在测试环境跑得挺好,上线就报错。查了半天,就是因为系统里那个requests版本被另一个项目给改了。
虚拟环境就是用来解决这个问题的。它像一个独立的“小盒子”,每个项目的依赖都装在自己的盒子里,互不干扰。
# 创建虚拟环境(Python 3.3+ 自带 venv 模块)
python -m venv alert_env
# 激活环境(Windows)
alert_env\Scripts\activate
# 激活环境(macOS / Linux)
source alert_env/bin/activate
激活后,命令行前面会出现 (alert_env) 字样。这就说明,你已经在虚拟环境里了。
用pip安装核心库
虚拟环境激活后,就可以装库了。我们的告警脚本,常用的库不多,但个个都是硬骨头。
| 库名 | 用途 | 安装命令 |
|---|---|---|
| requests | 发HTTP请求,调API | pip install requests |
| pyyaml | 读写YAML配置文件 | pip install pyyaml |
| logging | 记录运行日志 | Python内置,不用装 |
| subprocess | 执行系统命令 | Python内置,不用装 |
你看,核心库就这几样。但千万别小看它们。我做一个告警处置脚本,80%的工作量都靠这些库完成。
一次性安装也很简单:
pip install requests pyyaml
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
验证安装是否成功
装完了,别急着写脚本。先验证一下,确保所有零件都能正常运转。
- 打开终端,激活虚拟环境。
- 输入
python进入交互模式。 - 依次导入核心库。
python
>>> import requests
>>> import yaml
>>> import logging
>>> import subprocess
>>>
>>> print("所有库导入成功!")
如果没有任何报错,就说明环境搭建完毕了。
嗯,这里要注意。如果你在导入 yaml 时报错,很可能是你只装了 yaml 而不是 pyyaml。我记得有个同事就犯了这错误,查了半天才发现是名字搞混了。
核心逻辑一目了然
整个环境准备和调用流程,其实就是一件事:从“选工具”到“装工具”再到“检查工具”。我画了张图,帮你理清这个思路。
管理项目依赖
你想想看,脚本写完了,换到另一台机器上部署。你要一个一个重新装库吗?那太原始了。
用 requirements.txt 文件,可以把所有依赖记录下来。这是行业标准做法。
# 导出当前环境的依赖清单
pip freeze > requirements.txt
打开 requirements.txt,你看到的就是类似这样的内容:
certifi==2024.2.2
chardet==5.2.0
idna==3.7
PyYAML==6.0.1
requests==2.31.0
urllib3==2.2.1
在新机器上部署时,只需要一条命令:
pip install -r requirements.txt
IDE选择:顺手最重要
我个人比较喜欢VS Code。轻量,插件丰富。当然PyCharm也行,看个人习惯。
选好IDE后,记得在设置里指定刚才创建的虚拟环境解释器。不然你按F5跑脚本,它可能还在用系统Python,那import还是会失败。
- 打开VS Code,Ctrl+Shift+P。
- 输入“Python: Select Interpreter”。
- 选择你虚拟环境里的python.exe。
这个操作其实就花30秒。但我见过很多新手恰恰卡在这一步。