使用 pip 管理第三方包
Python 自带了很多功能,但真实项目经常还要使用别人已经写好的工具。例如:
- 使用
requests发送网络请求 - 使用
pandas处理表格数据 - 使用
flask开发 Web 应用
这些不随 Python 一起安装的工具叫作第三方包。pip 就是 Python 常用的包管理工具,可以帮助我们安装、更新和卸载第三方包。
这一节先用 requests 完成一次完整操作,再整理常用命令。
pip 与 Python 解释器
上一节已经为项目创建并激活了 .venv。安装第三方包时,还要保证 pip 使用的是这个虚拟环境中的解释器。
在 PyCharm 中打开终端:
View | Tool Windows | Terminal也可以使用快捷键 Alt + F12。
先查看终端中的 Python 版本和路径:
python --version
python -c "import sys; print(sys.executable)"输出的版本应该以 Python 3.14 开头,解释器路径应该位于当前项目的 .venv 中,并且和 PyCharm 选择的路径一致。
接着检查 pip:
python -m pip --version可以看到类似结果:
pip 25.x from ...\site-packages\pip (python 3.14)具体版本和路径可能不同。重点检查最后的 Python 版本是不是 3.14。
为什么使用 python -m pip
直接执行 pip install 时,系统可能找到另一个 Python 的 pip。
python -m pip 的意思是:先确定当前使用的 python,再让这个 Python 运行自己的 pip。电脑中存在多个 Python 时,这种写法更不容易装错环境。
终端路径和 PyCharm 不一致
如果终端中的 sys.executable 和 PyCharm 运行代码时显示的路径不同,先不要安装包。关闭并重新打开 PyCharm 终端,再检查一次。
仍然不一致时,回到使用 venv 管理项目虚拟环境,确认虚拟环境已经激活,并检查 PyCharm 项目解释器。
安装与验证第三方包
安装 requests
我们先安装 requests:
python -m pip install requestsinstall 表示安装。第一次执行时,pip 会从包索引中查找 requests,然后下载并安装它以及它依赖的其他包。
看到下面的提示,通常表示安装成功:
Successfully installed ... requests-...如果显示 Requirement already satisfied,表示当前解释器中已经安装,不需要重复安装。
查看安装信息
使用 show 查看包的信息:
python -m pip show requests重点关注下面三项:
Name:包名Version:已安装版本Location:安装位置
Location 应该位于当前解释器对应的环境中。
运行代码验证
只看到安装成功还不够,再通过代码确认一次。
新建 check_requests.py:
import requests
print("requests 版本:", requests.__version__)运行后能够输出版本号,并且没有出现 ModuleNotFoundError,说明当前项目已经可以使用 requests。
这次操作形成了一个完整的检查流程:
确认解释器 -> 安装第三方包 -> 查看安装位置 -> 运行代码验证包版本与环境依赖
版本约束与包生命周期
不指定版本时,pip 会选择符合条件的较新稳定版本:
python -m pip install requests如果项目明确要求某个版本,可以使用两个等号:
python -m pip install requests==2.32.5这里的 2.32.5 只是语法示例。实际项目应使用课程或项目要求的版本,也可以先通过 pip show 查看当前版本。
还可以设置最低版本:
python -m pip install "requests>=2.32"在 Windows 命令提示符和 PowerShell 中,带有 >、< 等符号的版本条件建议放在引号中,避免被终端当成其他操作。
更新包
把已经安装的包更新到符合条件的较新版本:
python -m pip install --upgrade requests更新 pip 自身也是同样的写法:
python -m pip install --upgrade pip卸载包
卸载指定包:
python -m pip uninstall requests终端会询问是否继续:
Proceed (Y/n)?输入 y 并回车,看到 Successfully uninstalled 表示卸载成功。
当前练习后面还要使用 requests,可以先记住卸载命令,不必马上执行。
不要随意批量卸载
一个包可能正在被其他包使用。当前阶段先卸载自己明确安装的包,不要看到陌生包就删除。
环境检查与依赖文件
查看当前环境
列出当前解释器中已经安装的包:
python -m pip list查看某一个包的详细信息:
python -m pip show 包名检查已安装包的依赖是否兼容:
python -m pip check如果没有发现问题,会看到:
No broken requirements found.requirements.txt 依赖文件
项目交给其他人运行时,只发送 Python 代码还不够。对方还需要知道项目安装了哪些第三方包。
可以把当前环境中的包和版本导出到 requirements.txt:
python -m pip freeze > requirements.txt某次导出的文件内容可能类似:
certifi==2025.8.3
charset-normalizer==3.4.3
idna==3.10
requests==2.32.5
urllib3==2.5.0你实际看到的版本号可能不同,以本机导出的结果为准。
这里不只有 requests,还会包含它依赖的包。pip freeze 记录的是当前环境中已经安装的内容,不会自动判断哪些包是我们主动安装的。
换一台电脑或新建环境后,可以一次安装文件中记录的全部依赖:
python -m pip install -r requirements.txt其中,-r 表示读取依赖文件。
导出前先确认环境
如果当前虚拟环境里已经安装了很多无关的包,requirements.txt 也会把它们一起记录下来。导出前先通过 sys.executable 确认自己位于当前项目的 .venv,并只安装项目真正需要的依赖。
镜像配置
临时使用镜像
pip 默认从 Python Package Index,也就是 PyPI 查找第三方包。网络不稳定或下载速度较慢时,可以临时使用可信的镜像站。
下面以清华大学开源软件镜像站为例:
python -m pip install requests -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple-i 是 --index-url 的简写,只对当前这条命令生效。命令中的 simple 不能省略。
优先使用临时镜像
镜像站同步可能存在延迟。平时能够正常访问 PyPI 时,不必修改默认配置;只在下载较慢时临时指定镜像,更容易判断问题来自哪里。
安装包之前还要检查包名,避免因为拼写错误安装到名称相似的恶意包。
默认镜像配置
如果当前网络长期无法稳定访问 PyPI,可以设置默认镜像:
python -m pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple这条命令会由 pip 自动处理 Windows、macOS 和 Linux 的配置文件,不需要手动创建 pip.ini 或 pip.conf。
查看当前生效的配置:
python -m pip config list需要恢复默认源时,删除刚才设置的配置:
python -m pip config unset global.index-url如果想进一步检查配置来自哪个文件,可以执行:
python -m pip config debug不要随意添加 trusted-host
使用正常的 HTTPS 镜像地址时,不需要配置 trusted-host。遇到证书错误,应先检查系统时间、网络代理和证书环境,不要通过关闭安全检查来绕过问题。
常见问题
pip 模块不存在
先尝试使用 Python 自带的 ensurepip 安装或修复 pip:
python -m ensurepip --upgrade完成后再检查:
python -m pip --version安装成功但无法导入
最常见的原因是:安装包和运行代码使用了不同的解释器。
在终端中执行:
python -c "import sys; print(sys.executable)"
python -m pip --version
python -m pip show 包名再运行下面的 Python 代码:
import sys
print(sys.executable)对比两个 sys.executable 的结果。如果路径不同,就回到上一节重新配置解释器。
找不到匹配的发行版本
依次检查:
- 包名和版本号是否写错
- 当前 Python 版本是否支持这个包
- 当前网络或镜像站是否正常
- 指定版本是否真实存在
可以先去掉版本限制,再尝试安装:
python -m pip install 包名下载超时或连接失败
先检查浏览器能否正常访问网络,再临时切换镜像重试。不要连续执行很多不同命令,否则很难判断哪一步解决了问题。
如果在公司或学校网络中使用代理,还需要按照所在网络的要求配置代理。
安装权限不足
先关闭正在占用相关文件的 Python 程序和终端,再重新执行。
如果使用的是系统解释器,并且只想为当前用户安装,可以尝试:
python -m pip install --user 包名虚拟环境中一般不需要使用 --user。不要因为权限错误就直接用管理员身份安装所有包。
常用命令速查
| 操作 | 命令 |
|---|---|
检查 pip | python -m pip --version |
| 安装包 | python -m pip install 包名 |
| 安装指定版本 | python -m pip install 包名==版本号 |
| 更新包 | python -m pip install --upgrade 包名 |
| 卸载包 | python -m pip uninstall 包名 |
| 查看包列表 | python -m pip list |
| 查看包信息 | python -m pip show 包名 |
| 检查依赖 | python -m pip check |
| 导出依赖 | python -m pip freeze > requirements.txt |
| 安装依赖文件 | python -m pip install -r requirements.txt |
| 查看镜像配置 | python -m pip config list |
小结
本节课最核心的是掌握 4 件事:
- 使用
python -m pip,让pip和 Python 解释器对应起来 - 安装后通过
pip show和实际导入确认结果 - 使用
requirements.txt记录和恢复项目依赖 - 下载较慢时先临时使用 HTTPS 镜像,并学会恢复默认配置
遇到“已经安装但无法导入”时,先比较解释器路径,不要急着反复安装。
延伸阅读:pip 用户指南、pip config 官方文档