Python怎么用pip安装第三方库
详细讲解Python使用pip安装第三方库的完整方法,包括pip的确认与安装、基本安装命令、指定版本安装、换源加速、虚拟环境管理以及常见问题排查。
刚写完一段数据处理脚本,需要用到 requests 发送 HTTP 请求,终端却提示 ModuleNotFoundError: No module named 'requests'——这种情况几乎每个 Python 开发者都遇到过。Python 自带的标准库覆盖不了所有需求,大量功能由社区维护的第三方库提供,而 pip 就是 Python 官方推荐的包管理工具,用来下载和安装这些库。本文按实际操作顺序,从确认 pip 可用开始,讲清安装、版本控制、换源加速和虚拟环境几个关键环节,帮你把第三方库顺利装上并用起来。
一、确认 pip 是否可用
Python 3.4 及以上版本在安装时默认捆绑了 pip。打开终端(Windows 下打开命令提示符或 PowerShell),输入以下命令检查:
pip --version
如果 pip 可用,会返回类似这样的信息:
这行输出告诉你 pip 的版本号、安装路径,以及它关联的 Python 版本。如果系统同时安装了 Python 2 和 Python 3,可能需要用 pip3 来明确调用 Python 3 对应的 pip。
如果提示 'pip' is not recognized 或 command not found,有几种可能:
- Python 安装时没有勾选"Add Python to PATH"(Windows)。重新运行安装程序,勾选该选项,或者手动将 Python 的
Scripts目录添加到系统 PATH。 - 使用的是 Linux 发行版自带的 Python,pip 可能需要单独安装。在 Debian/Ubuntu 上执行
sudo apt install python3-pip。 - pip 存在但未加入 PATH,可以用模块方式调用:
python3 -m pip --version。
python3 -m pip install --upgrade pip。新版 pip 在依赖解析和安全性方面有明显改进。二、用 pip install 安装库
pip 最核心的命令就是 pip install,它从 Python 官方包索引 PyPI(Python Package Index)下载并安装指定的库。
安装单个库
pip install requests
执行后 pip 会自动完成以下步骤:连接 PyPI、下载 requests 及其所有依赖包、安装到当前 Python 环境的 site-packages 目录。安装完成后可以立即在代码中 import requests 使用。
一次安装多个库
多个包名用空格隔开即可:
pip install requests flask pandas
指定版本号安装
项目开发中经常需要锁定某个特定版本,避免因版本更新导致代码不兼容。pip 支持多种版本约束写法:
# 安装精确版本
pip install requests==2.31.0
# 安装不低于某版本
pip install requests>=2.28.0
# 安装某个范围内的版本
pip install "requests>=2.28.0,<2.32.0"
包含比较运算符的表达式在某些 Shell 中需要用引号包裹,避免被解释为重定向符。
三、管理已安装的库
安装不是终点,日常开发中还需要查看、更新和卸载已有的库。
查看已安装的库
# 列出所有已安装的库
pip list
# 查看某个库的详细信息
pip show requests
pip show 会返回库的版本、作者、安装位置、依赖关系等信息,排查版本冲突时特别有用。
升级库到最新版本
pip install --upgrade requests
也可以写成 pip install -U requests,效果相同。pip 会检查 PyPI 上的最新版本,如果当前已是最新则不做任何操作。
卸载库
pip uninstall requests
执行后会列出即将删除的文件,输入 y 确认。需要注意的是,pip uninstall 只移除指定的库本身,不会自动卸载其依赖。如果依赖只被这个库使用,可以借助 pip-autoremove 等工具清理。
四、使用国内镜像源加速下载
pip 默认从 PyPI 官方源下载,服务器在国外,国内直连经常遇到下载缓慢甚至超时的问题。把下载源切换为国内镜像可以大幅改善速度。
临时指定镜像源
在 pip install 命令后加 -i 参数:
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
这个命令只对本次安装生效。常用的国内镜像包括:
- 清华大学:
https://pypi.tuna.tsinghua.edu.cn/simple - 阿里云:
https://mirrors.aliyun.com/pypi/simple - 中国科技大学:
https://pypi.mirrors.ustc.edu.cn/simple
永久配置镜像源
每次手动指定 -i 比较麻烦,可以通过配置文件把默认源改为镜像。pip 从 20.2 版本开始支持一条命令完成配置:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
这条命令会在用户配置目录下生成或修改 pip.conf(Windows 下是 pip.ini),之后所有 pip install 都会自动使用该镜像源,无需再加 -i。
五、用 requirements.txt 批量安装
团队协作或部署项目时,不可能让每个人手动逐个安装库。requirements.txt 是 Python 社区的通行做法——把项目依赖的所有库和版本号写在一个文本文件里,一条命令完成安装。
生成 requirements.txt
pip freeze > requirements.txt
pip freeze 输出当前环境中所有第三方库及其精确版本号,格式如下:
根据文件安装所有依赖
pip install -r requirements.txt
pip 会按文件中的每一行逐个安装。如果某个库已安装且版本匹配,就跳过。这条命令在克隆新项目后执行一次,就能把运行环境搭好。
pip freeze 会把所有库都导出,包括与当前项目无关的。建议在虚拟环境中操作(见下一节),导出的列表才干净、准确。六、在虚拟环境中使用 pip
如果所有项目的库都装在同一个全局 Python 环境里,迟早会遇到版本冲突——项目 A 需要 requests==2.28,项目 B 需要 requests==2.31,两者无法共存。虚拟环境通过为每个项目创建独立的 Python 运行空间来解决这个问题。
创建和使用虚拟环境
Python 3.3 以上自带 venv 模块,不需要额外安装:
# 在项目目录下创建名为 venv 的虚拟环境
python3 -m venv venv
# 激活虚拟环境
# Linux / macOS:
source venv/bin/activate
# Windows:
venv\Scripts\activate
激活后终端提示符前面会出现 (venv) 标记。此时执行 pip install 安装的库只存放在这个虚拟环境内部,不会影响系统 Python,也不会被其他项目看到。
# 在虚拟环境中安装库
pip install requests flask
# 确认安装位置
pip show requests
pip show 的 Location 字段应该指向虚拟环境内的 site-packages,而不是系统目录。
工作完成后,执行 deactivate 退出虚拟环境,回到全局环境。
七、常见问题排查
权限不足:Permission denied
在 Linux/macOS 上全局安装时可能遇到权限错误。可以加 --user 参数安装到用户目录:
pip install --user requests
这样不需要管理员权限,库会装到 ~/.local/lib/python3.x/site-packages。不过更推荐的做法是使用虚拟环境,从根源上避免权限问题。
安装后 import 报错找不到模块
最常见的原因是 pip 和 python 指向了不同版本。比如用 pip(关联 Python 2)安装了库,却用 python3 运行代码。解决方法是统一使用模块方式调用:
python3 -m pip install requests
这样可以保证 pip 安装到的就是 python3 对应的环境。
安装超时或连接失败
除了换源之外,还可以增加超时时间:
pip install requests --timeout 60
如果在公司内网通过代理上网,需要设置代理:
pip install requests --proxy http://proxy.example.com:8080
依赖冲突
当两个库依赖同一个包的不同版本时,pip 会报 ResolutionImpossible 错误。此时可以查看冲突详情,手动选择兼容版本,或者在不同虚拟环境中分别安装。
掌握以上内容,日常开发中绝大部分第三方库的安装和管理需求都能顺畅解决。核心原则很简单:用虚拟环境隔离项目、用 requirements.txt 记录依赖、用国内镜像加速下载。遇到问题时,先用 python3 -m pip 确认 pip 和 Python 版本一致,再检查网络和权限,通常就能找到原因。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













