当前位置:首页>python>每天学习一点Python——pip包管理器零基础完全指南

每天学习一点Python——pip包管理器零基础完全指南

  • 2026-09-09 16:31:07
每天学习一点Python——pip包管理器零基础完全指南

每天学习一点Python——pip包管理器零基础完全指南

不会安装第三方库?一文带你彻底搞懂Python的pip


引言:为什么我们需要pip?

当你开始编写稍微复杂一点的Python程序时,会发现Python自带的标准库(比如math、random、os)已经不够用了。你想爬取网页数据、处理Excel表格、生成PDF文件——这些功能Python默认并没有提供。

这时候就需要第三方包。它们是其他开发者写好的代码,你可以直接拿来用。而pip就是Python官方指定的“快递小哥”,负责把这些包下载、安装到你的电脑里。

从Python 3.4开始,pip已经内置在Python安装包中,你不需要单独安装。但如何使用它,里面藏着不少细节。


第一步:打开终端(命令提示符)

pip是一个命令行工具,不是图形界面软件。你需要在终端里敲命令。

  • • Windows:按Win键,输入cmd或powershell,回车
  • • macOS:按Cmd+空格,输入terminal,回车
  • • Ubuntu Linux:点击左下角“显示应用程序”,搜索terminal

💡 小Tip:终端是黑底白字的窗口,不要害怕,你敲什么它就执行什么。所有pip命令都在这里输入。


1. 验证pip是否已安装——你的第一行pip命令

文字说明

在正式使用pip之前,我们需要确认电脑里已经安装了pip。
Windows和macOS/Linux的命令稍有不同,这是初学者最容易踩坑的地方。

🔧 Windows用户输入:

python -m pip --version

🔧 macOS/Linux用户输入:

python3 -m pip --version

📋 命令详解(非常重要!)

组成部分
含义
作用
python
 或 python3
调用Python解释器
Windows下Python命令通常是python,macOS/Linux下通常为python3(区分Python2)
-m
“module”的缩写
告诉Python“以脚本方式运行一个模块”。这里运行的是pip模块本身
pip
包管理器的模块名
我们要使用的工具
--version
参数
要求pip显示当前的版本信息

整个命令的意思:让Python解释器运行pip模块,并让它输出自己的版本号。

🖥️ 输出结果示例(Windows):

pip 20.2.3 from c:\users\David\appdata\local\programs\python\python39\lib\site-packages\pip (python 3.9)

含义:

  • • 你安装的pip版本是20.2.3
  • • pip实际存放在这个路径下的site-packages文件夹——所有第三方包都会装在这里
  • • 这个pip服务于Python 3.9

⚠️ 小Tip(易错点)
如果python3 -m pip --version报错,试试python3.9 -m pip --version(将3.9换成你的具体版本)。Windows用户请始终使用python -m pip,不要用python3。


2. 升级pip——保持工具最新

文字说明

旧版pip可能无法安装某些新包,或者下载速度较慢。建议先升级pip到最新版。

🔧 命令:

python3 -m pip install --upgrade pip

Windows用户记得把python3换成python

📋 命令详解

组成部分
含义
作用
install
pip的子命令
表示要安装某个包
--upgrade
升级参数
如果包已安装,就把它升级到最新版
pip
包名
这里要升级的对象正是pip自己

整个命令的意思:使用pip去安装(并升级)pip本身到最新版本。

🖥️ 输出结果示例(如果已是最新):

Requirement already satisfied: pip in c:\python39\lib\site-packages (20.2.3)

含义:当前已经是最新版,不需要升级。

💡 小Tip:升级pip后,后续所有命令都应该使用升级后的版本。


3. 查看当前已安装的包——pip list

文字说明

刚装好Python时,环境里只有两个最基本的包:pip自己,以及setuptools(pip安装其他包时依赖的工具)。用pip list可以像清单一样列出来。

🔧 命令:

python3 -m pip list

📋 命令详解

组成部分
含义
list
pip子命令,列出所有已安装包

整个命令的意思:让pip显示当前Python环境中安装的所有第三方包及其版本号。

🖥️ 输出结果示例(ASCII表格版):

+------------+---------+
| Package    | Version |
+------------+---------+
| pip        | 19.3.1  |
| setuptools | 41.2.0  |
+------------+---------+

含义:目前环境中只有pip和setuptools两个包。


4. 安装你的第一个第三方包——requests

文字说明

requests是Python最受欢迎的HTTP库,用来向网站发送请求、获取数据。我们用它作为pip安装的入门案例。

🔧 命令:

python3 -m pip install requests

📋 命令详解

组成部分
含义
install
pip子命令,安装包
requests
要安装的包名

整个命令的意思:从PyPI(Python官方包仓库)下载并安装最新版本的requests包。

🖥️ 安装过程中的输出(精简后):

Collecting requests
  Downloading requests-2.22.0-py2.py3-none-any.whl (57 kB)
Collecting urllib3>=1.21.1,<1.26,!=1.25.0,!=1.25.1
  Downloading urllib3-1.25.7-py2.py3-none-any.whl (125 kB)
Collecting certifi>=2017.4.17
  Downloading certifi-2019.11.28-py2.py3-none-any.whl (156 kB)
Collecting chardet>=3.0.2,<3.1.0
  Downloading chardet-3.0.4-py2.py3-none-any.whl (133 kB)
Collecting idna>=2.5,<2.9
  Downloading idna-2.8-py2.py3-none-any.whl (58 kB)
Installing collected packages: urllib3, certifi, chardet, idna, requests
Successfully installed certifi-2019.11.28 chardet-3.0.4 idna-2.8 requests-2.22.0 urllib3-1.25.7

📋 输出逐行解释

输出行
含义
Collecting requests
pip正在联网查找requests包的信息
Downloading ... .whl
下载了一个.whl文件(wheel格式,预编译的安装包),后面括号是文件大小
Collecting urllib3...
发现requests依赖urllib3,自动下载
Installing collected packages
把下载好的所有包安装到site-packages目录
Successfully installed ...
安装成功,并列出所有安装的包及版本号

关键知识点:
pip会自动处理依赖关系——requests需要urllib3、certifi、chardet、idna才能正常工作,pip把这些包一并下载安装,完全不用你操心。


5. 再次查看已安装的包——见证requests的到来

文字说明

安装完requests之后,再执行pip list,你会发现清单里多了一串新名字。

🔧 命令:

python3 -m pip list

🖥️ 输出结果示例(ASCII表格):

+------------+--------------+
| Package    | Version      |
+------------+--------------+
| certifi    | 2019.11.28   |
| chardet    | 3.0.4        |
| idna       | 2.8          |
| pip        | 19.3.1       |
| requests   | 2.22.0       |
| setuptools | 41.2.0       |
| urllib3    | 1.25.7       |
+------------+--------------+

含义:requests及其四个依赖包全部成功安装。


6. 控制版本——安装指定版本的包

文字说明

默认情况下pip install 包名会安装最新版本。但实际项目中,你可能需要固定某个旧版本,或者限制版本范围,以确保代码兼容性。这时就要用到版本说明符。

🔰 6.1 安装大于等于某个版本

python3 -m pip install requests>=2.0

解释:安装requests的最新版,但该版本必须≥2.0。如果当前最新版是3.0,则装3.0。

🔰 6.2 安装小于等于某个版本

python3 -m pip install requests<=3.0

解释:安装requests的最新版,但版本号必须≤3.0。

🔰 6.3 安装严格小于某个版本

python3 -m pip install requests<3.0

解释:安装requests的最新版,但版本号必须小于3.0(不能等于3.0)。

🔰 6.4 安装严格大于某个版本

python3 -m pip install requests>2.0

解释:安装requests的最新版,但版本号必须大于2.0(不能等于2.0)。

🔰 6.5 安装某个具体版本(锁定版本)

python3 -m pip install requests==2.22.0

解释:精确安装2.22.0版本,不会安装更新的版本。

🔰 6.6 组合范围:在1.x系列中取最新

python3 -m pip install "requests>=1.0,<2.0"

解释:安装requests最新版,但必须≥1.0且<2.0。这保证你使用的是1.x系列中的最新修正版。

💡 小Tip:范围组合时建议用双引号包起来,避免终端把<、>误解为重定向符号。


📊 版本说明符对比表

说明符
含义
是否包含该版本
示例
>=
大于等于
✅ 包含
>=2.0
 会安装2.0或更高
<=
小于等于
✅ 包含
<=3.0
 会安装3.0或更低
>
大于
❌ 不包含
>2.0
 会安装2.0.1,但不装2.0.0
<
小于
❌ 不包含
<3.0
 会安装2.9,但不装3.0
==
精确等于
✅ 精准匹配
==2.22.0
 只装2.22.0
!=
不等于
❌ 排除特定版本
!=1.25.1
 跳过这个问题版本

重点对比:>=2.0 和 >2.0 的区别——前者包含2.0.0本身,后者不包含。


7. 查看包的详细信息——pip show

文字说明

安装完一个包后,你可能想了解它的作者、主页、依赖了哪些包等信息。pip show就是用来查看包详情的。

🔧 命令:

python3 -m pip show requests

📋 命令详解

组成部分
含义
show
pip子命令,显示指定包的详细信息

🖥️ 输出结果示例:

Name: requests
Version: 2.22.0
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache 2.0
Location: c:\users\David\...\site-packages
Requires: chardet, idna, certifi, urllib3
Required-by:

📋 输出字段解释

字段
含义
Name
包名
Version
当前安装的版本
Summary
一句话简介
Home-page
项目官网,可打开学习文档
Author
 / Author-email
作者信息
License
开源许可证
Location
包在磁盘上的安装路径
Requires这个包依赖的其他包
Required-by哪些包依赖这个包
(这里为空,因为没有其他包依赖requests)

💡 小Tip:Requires和Required-by是两个相反的方向,搞混了容易误解。Requires是“它依赖谁”,Required-by是“谁依赖它”。


8. 卸载包——pip uninstall

文字说明

有安装就有卸载。pip uninstall可以移除不再需要的包。

🔧 命令:

python3 -m pip uninstall requests

📋 命令详解

组成部分
含义
uninstall
pip子命令,卸载指定包

🖥️ 执行过程与交互:

Uninstalling requests-2.22.0:
  Would remove:
    c:\users\damos\...\requests-2.22.0.dist-info\*
    c:\users\damos\...\requests\*
Proceed (y/n)?

解释:pip列出了将要删除的文件,并询问你是否继续。输入y回车确认。

Successfully uninstalled requests-2.22.0

卸载完成。


关键观察:卸载requests之后,依赖包还在!

再次执行pip list:

python3 -m pip list

🖥️ 输出结果:

+------------+-----------+
| Package    | Version   |
+------------+-----------+
| certifi    | 2018.4.16 |
| chardet    | 3.0.4     |
| idna       | 2.7       |
| pip        | 10.0.1    |
| setuptools | 39.0.1    |
| urllib3    | 1.23      |
+------------+-----------+

注意:requests被删除了,但certifi、chardet、idna、urllib3依然存在。

📘 为什么pip不自动删除依赖包?

因为依赖共享。假设你安装了包A(依赖X)和包B(也依赖X)。如果你只卸载A,pip就把X也删掉,那么B就立刻无法运行了。
所以pip的设计原则是:只删除你明确指定的包,绝不擅自删除可能被其他包共享的依赖。

⚠️ 小Tip(易错点)
不要以为卸载了主包,依赖包也会自动消失。需要手动逐个卸载,或者用一条命令一次性卸载多个包:

python3 -m pip uninstall certifi chardet idna urllib3

这样会一起卸载这四个包。


9. 清理环境——回到原点

文字说明

卸载完所有刚才安装的包后,再运行pip list,你应该只会看到pip和setuptools。

🖥️ 最终输出:

+------------+---------+
| Package    | Version |
+------------+---------+
| pip        | 10.0.1  |
| setuptools | 39.0.1  |
+------------+---------+

恭喜!你的Python环境恢复到了最干净的状态。


10. 第三方包的“甜蜜陷阱”

文字说明

第三方包给我们带来了巨大的便利,但也带来了三个不可忽视的风险:

  1. 1. 版本冲突
    你今天安装requests 2.22.0跑得好好的,三个月后requests发布了3.0,完全不兼容2.x的写法。新来的同事直接pip install requests,装了个3.0,代码崩溃——你失去了对版本的控制。
  2. 2. 传递依赖的不可控
    你装包A,它自动装了包B 1.0。另一个包C也需要包B,但它需要包B 2.0。pip无法同时满足两个版本,冲突产生。
  3. 3. 信任问题
    你安装的包来自陌生开发者,你无法审查每一行代码。恶意包可能窃取数据、删除文件。

💡 解决方案:虚拟环境

虚拟环境可以为每一个项目创建独立的Python环境,不同项目可以使用不同版本的包,互不干扰。
(虚拟环境在我们练习的时候很少用,如果大家有需要,可以留言,我专门出一篇相关文章。)


11. 本章小结——你已掌握的pip核心技能

命令
作用
pip --version
查看pip版本
pip install --upgrade pip
升级pip
pip list
列出已安装包
pip install 包名
安装最新版包
pip install 包名==版本号
安装指定版本
pip install "包名>=1.0,<2.0"
安装范围内最新版
pip show 包名
查看包详情
pip uninstall 包名
卸载包

12. 温馨提示

📢 节前暂停更新,我们春节后再见!
祝大家丙午马年新春快乐,🐴 马到成功,万事顺意!


📦 资源获取提示

关注「码农自习室」,后台回复关键词 Python学习,即可获取本文完整代码,一起动手掌握高效编程的核心技巧!


❤️ 支持我们

如果觉得本文对你有帮助,欢迎点赞 + 关注,您的支持是我们持续创作优质内容的最大动力!


📚 学习资源说明

本文内容整理自《Python基础教程(第3版)》第13章,所有命令均已实测。

最新文章

随机文章