2、Python包管理工具:pip的基本使用、pip的配置文件、pip的源配置

说到Python,就绕不开pip。我刚开始做网络自动化的时候,第一个碰到的坑就是包依赖问题。你想想看,写好的脚本拿到另一台机器上跑,结果报错说缺少这个模块、那个库——这种体验,干过运维的都懂。

pip就是Python的包管理工具。说白了,它帮你下载、安装、卸载那些第三方的Python库。没有它,你连个requests库都得手动去官网扒源码,那效率就太低了。

2.1 pip的基本使用

先看看最常用的几个命令。我平时在服务器上配环境,基本就靠这几条指令活着。

# 安装包
pip install requests

# 指定版本安装
pip install requests==2.28.1

# 升级包
pip install --upgrade requests

# 卸载包
pip uninstall requests

# 查看已安装的包
pip list

# 查看某个包的详细信息
pip show requests

# 查看哪些包需要升级
pip list --outdated

嗯,这里要注意一个细节。很多新手喜欢直接 pip install 一把梭,结果装了一堆乱七八糟的版本。我在项目中遇到过好几次,因为某个包的版本冲突,导致整个自动化脚本跑不起来。

我的习惯:每次装包之前,先用 pip list 看看当前环境里已经装了哪些。尤其是那些核心库,比如 paramiko、netmiko、napalm,它们的版本兼容性有时候挺坑的。

2.2 pip的配置文件

pip的配置文件,很多人可能都没碰过。但说实话,搞运维的要是不会配这个,那效率至少打五折。

配置文件的位置,不同系统不一样:

操作系统 配置文件路径
Linux / macOS ~/.pip/pip.conf 或 ~/.config/pip/pip.conf
Windows %APPDATA%\pip\pip.ini
全局配置 /etc/pip.conf

配置文件长什么样?我给你看个例子:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn

[install]
timeout = 60
no-cache-dir = false

为什么要有配置文件?我举个例子你就明白了。你在公司内网装包,外网访问不了PyPI官方源,每次都得手动指定 -i 参数。配好配置文件之后,一劳永逸。

我曾经踩过的坑:有次在客户现场部署,他们的内网环境连外网都出不去。我一开始没配配置文件,每次装包都报超时。后来发现他们内部有个镜像源,配到 pip.conf 里,问题就解决了。所以,去客户现场之前,先问问他们有没有内部源。

2.3 pip的源配置

源配置,说白了就是告诉pip去哪里下载包。默认的源是PyPI官方源,地址是 https://pypi.org/simple/。但这个源在国外,国内访问速度慢得让人抓狂。

常用的国内镜像源:

镜像源名称 地址
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple
阿里云 https://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣 https://pypi.douban.com/simple/

临时指定源,用 -i 参数:

pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple

永久配置源,写进配置文件:

[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
trusted-host = mirrors.aliyun.com

我个人习惯用清华的源,稳定、更新也及时。但有一次,清华源挂了几个小时,我临时切到阿里云才把包装完。所以,建议你手头备两三个源的地址,以防万一。

核心要点:
  • pip是Python的包管理工具,核心命令就那几个:install、uninstall、list、show
  • 配置文件可以帮你省去每次手动指定参数的麻烦
  • 国内用户一定要配镜像源,不然下载速度会让你怀疑人生
  • trusted-host这个参数别忘了,有些源需要显式声明信任

为什么会强调源配置?你想想看,网络运维脚本里经常用到 netmiko、paramiko、ncclient 这些库。如果pip下载慢,或者干脆连不上,你的自动化工作就卡在第一步了。我见过不少同事,因为源没配好,装个包花了半小时,最后发现是网络问题。

嗯,关于pip的基本使用、配置文件和源配置,就聊这么多。这些东西看着简单,但用好了,能帮你省下大把时间。下一节我们聊聊虚拟环境,那才是真正解决包依赖问题的利器。

pip包管理核心知识体系 pip包管理工具 基本使用 配置文件 源配置 install uninstall list show Linux/macOS Windows 全局配置 用户配置 清华源 阿里云 中科大 豆瓣 核心目标:解决包依赖问题,提升自动化效率

可可精品资料库