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环境

  1. 去Python官网(python.org)下载安装包,选3.8以上版本。我个人推荐3.10或3.11,稳定且兼容性好。
  2. 安装时务必勾选「Add Python to PATH」。这个选项不勾,后面命令行里敲python会报错。我曾经帮一个同事排查了半天,结果就是这步没勾。
  3. 安装完成后,打开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 知识体系总览

下面这张图,把本章的核心逻辑串起来了。你一看就明白:

Python环境与网络库准备 - 知识体系 Python安装 3.8+ 版本选择 虚拟环境(venv) 项目隔离 库安装 paramiko + netmiko 安装方式 Windows: 官网安装包 macOS: Homebrew Linux: apt/yum 虚拟环境操作 创建: python -m venv 激活: source activate 退出: deactivate 依赖管理 pip freeze > requirements pip install -r requirements 国内镜像加速 环境就绪 → 可以开始自动化运维实战

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

如果看到版本号,恭喜你,环境配好了!

我的建议:把这个脚本保存好,以后换电脑或者重装系统,跑一遍就知道环境有没有问题。省心。

好了,这一章的内容就这些。环境搭好了,后面咱们就可以真正开始玩自动化了。你想想看,以后几百台设备一键备份、批量改配置,是不是很爽?


专注资料整理