Skip to content

使用 pip 管理第三方包 ​

Python 自带了很多功能,但真实项目经常还要使用别人已经写好的工具。例如:

  • 使用 requests 发送网络请求
  • 使用 pandas 处理表格数据
  • 使用 flask 开发 Web 应用

这些不随 Python 一起安装的工具叫作第三方包。pip 就是 Python 常用的包管理工具,可以帮助我们安装、更新和卸载第三方包。

这一节先用 requests 完成一次完整操作,再整理常用命令。

pip 与 Python 解释器 ​

上一节已经为项目创建并激活了 .venv。安装第三方包时,还要保证 pip 使用的是这个虚拟环境中的解释器。

在 PyCharm 中打开终端:

text
View | Tool Windows | Terminal

也可以使用快捷键 Alt + F12。

终端、pip 与 PyCharm 使用同一个虚拟环境

先查看终端中的 Python 版本和路径:

shell
python --version
python -c "import sys; print(sys.executable)"

输出的版本应该以 Python 3.14 开头,解释器路径应该位于当前项目的 .venv 中,并且和 PyCharm 选择的路径一致。

接着检查 pip:

shell
python -m pip --version

可以看到类似结果:

text
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:

shell
python -m pip install requests

install 表示安装。第一次执行时,pip 会从包索引中查找 requests,然后下载并安装它以及它依赖的其他包。

看到下面的提示,通常表示安装成功:

text
Successfully installed ... requests-...

如果显示 Requirement already satisfied,表示当前解释器中已经安装,不需要重复安装。

查看安装信息

使用 show 查看包的信息:

shell
python -m pip show requests

重点关注下面三项:

  • Name:包名
  • Version:已安装版本
  • Location:安装位置

Location 应该位于当前解释器对应的环境中。

运行代码验证

只看到安装成功还不够,再通过代码确认一次。

新建 check_requests.py:

python
import requests

print("requests 版本:", requests.__version__)

运行后能够输出版本号,并且没有出现 ModuleNotFoundError,说明当前项目已经可以使用 requests。

这次操作形成了一个完整的检查流程:

text
确认解释器 -> 安装第三方包 -> 查看安装位置 -> 运行代码验证

安装并验证第三方包的完整流程

包版本与环境依赖 ​

版本约束与包生命周期 ​

不指定版本时,pip 会选择符合条件的较新稳定版本:

shell
python -m pip install requests

如果项目明确要求某个版本,可以使用两个等号:

shell
python -m pip install requests==2.32.5

这里的 2.32.5 只是语法示例。实际项目应使用课程或项目要求的版本,也可以先通过 pip show 查看当前版本。

还可以设置最低版本:

shell
python -m pip install "requests>=2.32"

pip 版本约束与包生命周期

在 Windows 命令提示符和 PowerShell 中,带有 >、< 等符号的版本条件建议放在引号中,避免被终端当成其他操作。

更新包

把已经安装的包更新到符合条件的较新版本:

shell
python -m pip install --upgrade requests

更新 pip 自身也是同样的写法:

shell
python -m pip install --upgrade pip

卸载包

卸载指定包:

shell
python -m pip uninstall requests

终端会询问是否继续:

text
Proceed (Y/n)?

输入 y 并回车,看到 Successfully uninstalled 表示卸载成功。

当前练习后面还要使用 requests,可以先记住卸载命令,不必马上执行。

不要随意批量卸载

一个包可能正在被其他包使用。当前阶段先卸载自己明确安装的包,不要看到陌生包就删除。

环境检查与依赖文件 ​

查看当前环境

列出当前解释器中已经安装的包:

shell
python -m pip list

查看某一个包的详细信息:

shell
python -m pip show 包名

检查已安装包的依赖是否兼容:

shell
python -m pip check

如果没有发现问题,会看到:

text
No broken requirements found.

requirements.txt 依赖文件

项目交给其他人运行时,只发送 Python 代码还不够。对方还需要知道项目安装了哪些第三方包。

可以把当前环境中的包和版本导出到 requirements.txt:

shell
python -m pip freeze > requirements.txt

某次导出的文件内容可能类似:

text
certifi==2025.8.3
charset-normalizer==3.4.3
idna==3.10
requests==2.32.5
urllib3==2.5.0

你实际看到的版本号可能不同,以本机导出的结果为准。

这里不只有 requests,还会包含它依赖的包。pip freeze 记录的是当前环境中已经安装的内容,不会自动判断哪些包是我们主动安装的。

换一台电脑或新建环境后,可以一次安装文件中记录的全部依赖:

shell
python -m pip install -r requirements.txt

其中,-r 表示读取依赖文件。

requirements.txt 依赖文件生命周期

导出前先确认环境

如果当前虚拟环境里已经安装了很多无关的包,requirements.txt 也会把它们一起记录下来。导出前先通过 sys.executable 确认自己位于当前项目的 .venv,并只安装项目真正需要的依赖。

镜像配置 ​

临时使用镜像

pip 默认从 Python Package Index,也就是 PyPI 查找第三方包。网络不稳定或下载速度较慢时,可以临时使用可信的镜像站。

下面以清华大学开源软件镜像站为例:

shell
python -m pip install requests -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

-i 是 --index-url 的简写,只对当前这条命令生效。命令中的 simple 不能省略。

优先使用临时镜像

镜像站同步可能存在延迟。平时能够正常访问 PyPI 时,不必修改默认配置;只在下载较慢时临时指定镜像,更容易判断问题来自哪里。

安装包之前还要检查包名,避免因为拼写错误安装到名称相似的恶意包。

默认镜像配置

如果当前网络长期无法稳定访问 PyPI,可以设置默认镜像:

shell
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。

查看当前生效的配置:

shell
python -m pip config list

需要恢复默认源时,删除刚才设置的配置:

shell
python -m pip config unset global.index-url

如果想进一步检查配置来自哪个文件,可以执行:

shell
python -m pip config debug

pip 镜像配置的作用范围

不要随意添加 trusted-host

使用正常的 HTTPS 镜像地址时,不需要配置 trusted-host。遇到证书错误,应先检查系统时间、网络代理和证书环境,不要通过关闭安全检查来绕过问题。

常见问题 ​

pip 模块不存在 ​

先尝试使用 Python 自带的 ensurepip 安装或修复 pip:

shell
python -m ensurepip --upgrade

完成后再检查:

shell
python -m pip --version

安装成功但无法导入 ​

最常见的原因是:安装包和运行代码使用了不同的解释器。

在终端中执行:

shell
python -c "import sys; print(sys.executable)"
python -m pip --version
python -m pip show 包名

再运行下面的 Python 代码:

python
import sys

print(sys.executable)

对比两个 sys.executable 的结果。如果路径不同,就回到上一节重新配置解释器。

找不到匹配的发行版本 ​

依次检查:

  1. 包名和版本号是否写错
  2. 当前 Python 版本是否支持这个包
  3. 当前网络或镜像站是否正常
  4. 指定版本是否真实存在

可以先去掉版本限制,再尝试安装:

shell
python -m pip install 包名

下载超时或连接失败 ​

先检查浏览器能否正常访问网络,再临时切换镜像重试。不要连续执行很多不同命令,否则很难判断哪一步解决了问题。

如果在公司或学校网络中使用代理,还需要按照所在网络的要求配置代理。

安装权限不足 ​

先关闭正在占用相关文件的 Python 程序和终端,再重新执行。

如果使用的是系统解释器,并且只想为当前用户安装,可以尝试:

shell
python -m pip install --user 包名

虚拟环境中一般不需要使用 --user。不要因为权限错误就直接用管理员身份安装所有包。

常用命令速查 ​

操作命令
检查 pippython -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 件事:

  1. 使用 python -m pip,让 pip 和 Python 解释器对应起来
  2. 安装后通过 pip show 和实际导入确认结果
  3. 使用 requirements.txt 记录和恢复项目依赖
  4. 下载较慢时先临时使用 HTTPS 镜像,并学会恢复默认配置

遇到“已经安装但无法导入”时,先比较解释器路径,不要急着反复安装。

延伸阅读:pip 用户指南、pip config 官方文档