3、Python环境与网络库准备:Python安装、paramiko/netmiko库安装、虚拟环境搭建
说实话,很多搞网络的朋友一听到「编程」两个字就头大。我完全理解,毕竟咱们平时跟交换机、路由器打交道多,命令行敲得飞起。但你想啊,如果能把那些重复的登录、配置、备份工作自动化,是不是能省下大把时间喝咖啡?
嗯,这一章咱们就来把地基打牢。Python环境配好了,后面才能跑得起来。我这些年带团队,发现80%的坑都出在环境配置上——不是版本不对,就是库装错了地方。所以别急,一步步来。
核心要点:Python 3.8+ 版本 + paramiko/netmiko 库 + 虚拟环境隔离。这三样配齐了,后面30章随便折腾。
3.1 为什么选Python?
你可能要问:市面上那么多语言,为啥偏偏是Python?
我个人的经验是:Python的库生态太强了。网络设备管理这块,paramiko和netmiko几乎是行业标准。你想想看,一个SSH连接库,一个封装好的网络设备操作库,直接让你从「手动敲命令」变成「写脚本批量执行」。我在项目中遇到过,一个200台交换机的配置备份任务,用Python脚本跑完不到10分钟,换成手工操作得干一整天。
而且Python语法简单,就算你之前没写过代码,跟着我走一遍也能上手。说白了,它就是网络运维的「瑞士军刀」。
3.2 Python安装(Windows/macOS/Linux)
安装Python其实不复杂,但有几个细节要注意。我踩过的坑,今天一并告诉你。
3.2.1 Windows环境
- 去Python官网(python.org)下载安装包,选3.8以上版本。我个人推荐3.10或3.11,稳定且兼容性好。
- 安装时务必勾选「Add Python to PATH」。这个选项不勾,后面命令行里敲python会报错。我曾经帮一个同事排查了半天,结果就是这步没勾。
- 安装完成后,打开CMD或PowerShell,输入
python --version验证。如果显示版本号,说明装好了。
注意:Windows上如果同时装了多个Python版本,建议用 py -3.10 来指定版本。不然容易搞混。
3.2.2 macOS环境
macOS自带Python 2.7,但咱们要用Python 3。我建议用Homebrew安装:
brew install python@3.10
装完后,用 python3 --version 检查。macOS上默认的 python 命令指向的是Python 2,所以记得用 python3。
3.2.3 Linux环境
Linux就简单了。以Ubuntu为例:
sudo apt update
sudo apt install python3 python3-pip -y
CentOS/RHEL用yum:
sudo yum install python3 python3-pip -y
装完验证:python3 --version。嗯,这里要注意,有些老系统默认Python版本低,建议用EPEL源或者源码编译安装新版本。
3.3 虚拟环境搭建(venv)
为什么要用虚拟环境?我打个比方:你同时做两个项目,一个用paramiko 2.x,一个用paramiko 3.x。如果不隔离,就会冲突。虚拟环境就是给每个项目一个独立的「小房间」,互不干扰。
我个人习惯,每个项目都建一个虚拟环境。哪怕只有一个项目,也建。这是好习惯。
3.3.1 创建虚拟环境
打开终端,进入你的项目目录,然后:
python3 -m venv venv
这行命令会在当前目录下生成一个 venv 文件夹。里面包含了独立的Python解释器和pip。
3.3.2 激活虚拟环境
Windows:
venv\Scripts\activate
macOS/Linux:
source venv/bin/activate
激活后,命令行前面会出现 (venv) 字样。这时候你安装的所有库,都只在这个环境里生效。
小技巧:退出虚拟环境用 deactivate 命令。我经常忘记退出,结果在别的项目里装了一堆没用的库……
3.4 安装paramiko和netmiko
好,环境搭好了,现在装核心库。这两个库是咱们后面所有自动化脚本的基础。
3.4.1 安装paramiko
paramiko是Python的SSH库,负责建立连接、执行命令、传输文件。安装很简单:
pip install paramiko
验证安装:
python -c "import paramiko; print(paramiko.__version__)"
如果输出版本号,说明装好了。我在项目中遇到过,有些老系统装paramiko会报错,多半是依赖的cryptography库编译失败。这时候可以试试预编译的wheel包:
pip install paramiko --only-binary :all:
3.4.2 安装netmiko
netmiko是基于paramiko的封装库,专门为网络设备设计的。它支持Cisco、华为、H3C、Juniper等主流厂商的设备。说白了,它把SSH连接、命令执行、回显解析这些脏活累活都包了。
pip install netmiko
验证:
python -c "import netmiko; print(netmiko.__version__)"
避坑指南:我曾经在Windows上装netmiko时,因为网络问题一直下载失败。解决办法是换国内镜像源:pip install netmiko -i https://pypi.tuna.tsinghua.edu.cn/simple。速度飞快。
3.5 依赖管理与requirements.txt
项目做大了,依赖库会越来越多。你总不能每次都手动记吧?这时候就需要 requirements.txt。
生成当前环境的依赖列表:
pip freeze > requirements.txt
在新环境里一键安装:
pip install -r requirements.txt
这个文件建议提交到Git仓库。这样团队成员拉下来后,直接一条命令就能复现环境。我在项目中吃过亏,有次换电脑忘了导出依赖,结果花了一下午重新配环境……
3.6 知识体系总览
下面这张图,把本章的核心逻辑串起来了。你一看就明白:
3.7 验证环境是否就绪
最后一步,写个简单的测试脚本,确保所有组件都能正常工作。新建一个 test_env.py 文件:
# test_env.py
import paramiko
import netmiko
print("paramiko版本:", paramiko.__version__)
print("netmiko版本:", netmiko.__version__)
print("环境准备完成!可以开始自动化运维了。")
运行:
python test_env.py
如果看到版本号,恭喜你,环境配好了!
我的建议:把这个脚本保存好,以后换电脑或者重装系统,跑一遍就知道环境有没有问题。省心。
好了,这一章的内容就这些。环境搭好了,后面咱们就可以真正开始玩自动化了。你想想看,以后几百台设备一键备份、批量改配置,是不是很爽?