2. pip基础
做Python开发,离不开pip。我见过太多新手在环境配置上浪费大把时间,说白了就是没把pip玩明白。这一章,咱们就把pip的安装、升级和日常命令彻底搞清楚。
1.1 pip的安装与升级
先说说pip怎么装。Python 3.4以上版本,pip已经内置了。你可以在终端输入:
python -m pip --version
如果看到版本号,说明pip已经就绪。没装的话也别慌,我推荐用官方脚本:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
嗯,这里要注意:Windows用户记得把Python和Scripts目录加到环境变量里。我曾经帮一个同事排查问题,折腾了半天,结果发现就是环境变量没配好。
pip本身也需要升级。你想想看,老版本pip在解析依赖时可能会有bug。升级命令很简单:
python -m pip install --upgrade pip
我个人习惯每两周执行一次这个命令。尤其是在开始新项目前,确保pip是最新版,能省去很多麻烦。
--user 参数,或者用虚拟环境。我强烈推荐后者。
1.2 pip install——安装包的核心命令
安装包是pip最常用的功能。基本用法:
pip install requests
这会安装最新版的requests库。但实际项目中,我们往往需要指定版本:
pip install requests==2.28.1
pip install 'requests>=2.20, <3.0'
为什么要指定版本?我在项目中遇到过两次惨痛教训。第一次是团队里有人装了新版库,结果接口变了,整个模块跑不起来。第二次是依赖冲突,A包要1.x,B包要2.x,折腾了一下午才理清。
所以我的建议是:永远在项目里锁定版本。用 requirements.txt 来管理:
pip install -r requirements.txt
这个文件长这样:
flask==2.2.3
requests==2.28.1
numpy==1.24.2
== 锁定精确版本。别偷懒用 >=,除非你很清楚自己在做什么。
1.3 pip uninstall——卸载不需要的包
卸载命令很简单:
pip uninstall requests
系统会提示确认。如果想跳过确认,加 -y 参数:
pip uninstall requests -y
不过我得提醒你:卸载前先确认这个包没有被其他项目依赖。我曾经手快卸载了某个公共库,结果CI构建直接挂了。嗯,那天的教训挺深刻的。
1.4 pip list——查看已安装的包
想知道当前环境装了哪些包?用 pip list:
pip list
输出类似这样:
Package Version
---------- -------
pip 23.0.1
requests 2.28.1
setuptools 67.6.0
如果想看哪些包有更新:
pip list --outdated
这个命令我经常用。尤其是在接手老旧项目时,先看看哪些依赖已经过时,心里有个底。
1.5 pip show——查看包的详细信息
遇到不熟悉的包,用 pip show 查看详情:
pip show requests
输出:
Name: requests
Version: 2.28.1
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
License: Apache 2.0
Requires: certifi, charset-normalizer, idna, urllib3
Required-by: flask
这里有两个关键信息:Requires 和 Required-by。前者告诉你这个包依赖什么,后者告诉你哪些包依赖它。这在排查依赖冲突时特别有用。
Required-by 列表不为空,卸载这个包时要格外小心。最好先用 pip show 确认一下。
1.6 pip freeze——导出当前环境依赖
这个命令我几乎每天都会用。它把当前环境的所有包和版本号输出成 requirements.txt 格式:
pip freeze > requirements.txt
生成的文件内容:
certifi==2022.12.7
charset-normalizer==3.0.1
idna==3.4
requests==2.28.1
urllib3==1.26.14
你可能会问:这和 pip list 有什么区别?说白了,freeze 的输出格式就是 requirements.txt 的标准格式,可以直接拿来用。而 list 的输出更适合人看。
我个人习惯在项目提交前执行一次 pip freeze,确保依赖版本被正确记录。这样团队成员拉下代码后,一条命令就能复现环境。
知识体系总览
下面这张图帮你理清pip核心命令的关系:
这张图把pip的五大命令和三个核心场景串起来了。你从上往下看:先掌握 install 和 uninstall 这两个基础操作,再学会用 list、show、freeze 来管理和查询依赖。最后落到实际场景:安装卸载、环境迁移、信息查询。
install、freeze、list 这三个命令练熟。它们能覆盖你80%的日常需求。剩下的命令,遇到具体问题时再查也不迟。
好了,这一章的内容就到这里。记住:pip是Python生态的基石,花点时间把它搞透,绝对值得。
可可精品资料库