目录
[一、什么是 pip?](#一、什么是 pip?)
[1.1 检查 pip 是否已安装](#1.1 检查 pip 是否已安装)
[1.2 安装/升级 pip](#1.2 安装/升级 pip)
[二、pip 基本命令](#二、pip 基本命令)
[2.1 安装包](#2.1 安装包)
[2.2 卸载包](#2.2 卸载包)
[2.3 升级包](#2.3 升级包)
[2.4 列出已安装的包](#2.4 列出已安装的包)
[2.5 查看包信息](#2.5 查看包信息)
[2.6 搜索包](#2.6 搜索包)
[2.7 检查哪些包需要更新](#2.7 检查哪些包需要更新)
[2.8 导出当前环境的包列表](#2.8 导出当前环境的包列表)
[三、pip 高级用法](#三、pip 高级用法)
[3.1 使用 requirements.txt 管理依赖](#3.1 使用 requirements.txt 管理依赖)
[3.2 从其他源安装](#3.2 从其他源安装)
[3.3 从版本控制系统安装](#3.3 从版本控制系统安装)
[3.4 从本地文件安装](#3.4 从本地文件安装)
[3.5 使用约束文件](#3.5 使用约束文件)
[3.6 仅下载而不安装](#3.6 仅下载而不安装)
[3.7 安装可编辑模式(开发模式)](#3.7 安装可编辑模式(开发模式))
[3.8 指定平台和 Python 版本](#3.8 指定平台和 Python 版本)
[四、pip 配置](#四、pip 配置)
[4.1 配置文件位置](#4.1 配置文件位置)
[4.2 常用配置示例](#4.2 常用配置示例)
[4.3 使用环境变量](#4.3 使用环境变量)
[5.1 解决权限问题](#5.1 解决权限问题)
[5.2 缓存问题](#5.2 缓存问题)
[5.3 加速安装](#5.3 加速安装)
[5.4 虚拟环境与 pip](#5.4 虚拟环境与 pip)
[5.5 更新 pip 自身](#5.5 更新 pip 自身)
[5.6 查看 pip 帮助](#5.6 查看 pip 帮助)
[5.7 安装二进制 wheel 包](#5.7 安装二进制 wheel 包)
[5.8 解决依赖冲突](#5.8 解决依赖冲突)
pip 是 Python 的包管理工具,它允许你从 Python Package Index (PyPI) 以及其他包索引安装和管理第三方库。无论是初学者还是资深开发者,熟练掌握 pip 都是高效 Python 开发的必备技能。本文将详细介绍 pip 的常用命令、高级用法、配置技巧以及最佳实践,帮助你全面掌握这个强大的工具。
一、什么是 pip?
pip 是 "Pip Installs Packages" 的递归缩写,是 Python 官方推荐的包安装程序。它能够自动处理依赖关系,从 PyPI 或其他包索引下载并安装软件包。pip 从 Python 3.4 开始(对于 Python 2,从 2.7.9 开始)已经内置在 Python 安装包中,因此通常无需单独安装。
1.1 检查 pip 是否已安装
打开终端(命令提示符)并运行:
bash
pip --version
如果显示类似 pip 24.0 from /usr/local/lib/python3.12/site-packages (python 3.12) 的信息,说明 pip 已安装。
1.2 安装/升级 pip
如果你需要安装或升级 pip,可以使用以下命令:
bash
python -m ensurepip --upgrade # 确保 pip 已安装并升级到最新
# 或者使用 get-pip.py 脚本
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
二、pip 基本命令
2.1 安装包
最简单的安装命令:
bash
pip install <package_name>
例如安装 requests:
bash
pip install requests
常用选项
-
指定版本 :
pip install requests==2.28.1 -
大于等于某版本 :
pip install 'requests>=2.25' -
安装到用户目录 :
pip install --user requests(避免使用系统 Python 环境) -
从 requirements 文件安装 :
pip install -r requirements.txt
2.2 卸载包
bash
pip uninstall <package_name>
卸载时会询问确认,可使用 -y 跳过确认:
bash
pip uninstall requests -y
2.3 升级包
bash
pip install --upgrade <package_name>
# 或简写
pip install -U <package_name>
2.4 列出已安装的包
bash
pip list
列出所有已安装的包及其版本。
2.5 查看包信息
bash
pip show <package_name>
显示包的详细信息,包括版本、依赖、作者等。
2.6 搜索包
bash
pip search <keyword>
注意 :从 PyPI 搜索的功能由于 PyPI 的限制可能不再可靠,建议使用浏览器在 pypi.org 搜索。
2.7 检查哪些包需要更新
bash
pip list --outdated
显示所有有更新版本的包。
2.8 导出当前环境的包列表
bash
pip freeze > requirements.txt
生成一个包含所有包及其版本的列表,通常用于记录项目依赖。注意 freeze 会列出所有包(包括依赖的依赖),而 pip list 只列出顶层包。
三、pip 高级用法
3.1 使用 requirements.txt 管理依赖
requirements.txt 是一个文本文件,每行定义一个包及其版本约束。典型内容:
text
requests==2.28.1
numpy>=1.21,<2.0
flask
安装所有依赖:
bash
pip install -r requirements.txt
3.2 从其他源安装
默认从 PyPI 下载,但可以指定其他索引:
bash
pip install -i https://mirrors.aliyun.com/pypi/simple/ requests
常用国内镜像:
-
阿里云:
https://mirrors.aliyun.com/pypi/simple/ -
清华大学:
https://pypi.tuna.tsinghua.edu.cn/simple -
中国科技大学:
https://pypi.mirrors.ustc.edu.cn/simple
3.3 从版本控制系统安装
直接从 Git、Mercurial 等仓库安装:
bash
pip install git+https://github.com/psf/requests.git
pip install git+https://github.com/psf/requests.git@2.28.1 # 指定 tag
pip install git+https://github.com/psf/requests.git#egg=requests
3.4 从本地文件安装
-
从本地目录安装(包含
setup.py的源码包):bash
pip install /path/to/package -
从 wheel 文件安装:
bash
pip install package.whl
3.5 使用约束文件
约束文件(constraints.txt)类似于 requirements,但只限制版本而不强制安装。用于控制依赖版本,但不主动安装。
bash
pip install -c constraints.txt
3.6 仅下载而不安装
bash
pip download <package> -d ./downloaded_packages
下载包及其依赖到指定目录,之后可以离线安装:
bash
pip install --no-index --find-links ./downloaded_packages <package>
3.7 安装可编辑模式(开发模式)
bash
pip install -e /path/to/package
这会将包链接到当前开发目录,修改代码后立即生效,常用于本地开发调试。
3.8 指定平台和 Python 版本
跨平台安装时,可以使用 --platform、--python-version 等选项:
bash
pip download --only-binary=:all: --platform manylinux2014_x86_64 --python-version 39 --dest ./wheels numpy
四、pip 配置
pip 的行为可以通过配置文件或环境变量定制。
4.1 配置文件位置
-
Windows:
%APPDATA%\pip\pip.ini -
macOS/Linux:
$HOME/.pip/pip.conf或$HOME/.config/pip/pip.conf -
全局配置:Unix 下
/etc/pip.conf
4.2 常用配置示例
ini
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
trusted-host = mirrors.aliyun.com
timeout = 60
4.3 使用环境变量
-
PIP_INDEX_URL:设置索引 URL -
PIP_TRUSTED_HOST:信任的主机 -
PIP_TIMEOUT:超时时间
例如:
bash
export PIP_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/
五、常见问题与技巧
5.1 解决权限问题
如果遇到权限错误,可以考虑:
-
使用虚拟环境(推荐)
-
使用
--user选项安装到用户目录 -
使用
sudo(仅在系统级安装必要时,且需谨慎)
5.2 缓存问题
pip 默认会缓存下载的包,如果遇到安装失败,可以尝试清除缓存:
bash
pip cache purge
或在安装时禁用缓存:
bash
pip install --no-cache-dir <package>
5.3 加速安装
-
使用国内镜像源
-
使用
--prefer-binary优先使用 wheel 包(避免编译) -
启用并行下载(pip 20.3+ 默认开启)
5.4 虚拟环境与 pip
强烈建议为每个项目创建独立的虚拟环境,避免包冲突。使用 Python 内置的 venv:
bash
python -m venv myenv
source myenv/bin/activate # Linux/macOS
myenv\Scripts\activate # Windows
pip install <package>
5.5 更新 pip 自身
bash
pip install --upgrade pip
如果在虚拟环境外遇到权限问题,可以加上 --user。
5.6 查看 pip 帮助
bash
pip help
pip install --help
5.7 安装二进制 wheel 包
某些包需要编译(如 numpy),建议使用预编译的 wheel 版本。pip 会自动选择,但可以强制使用二进制:
bash
pip install --only-binary :all: numpy
5.8 解决依赖冲突
使用 pip check 检查当前环境是否存在依赖冲突:
bash
pip check
六、总结
pip 是 Python 生态中不可或缺的工具,掌握它的各种命令和选项能够极大提升开发效率。本文从基础命令到高级用法,再到配置和常见问题,全面覆盖了 pip 的使用场景。建议你在实际开发中结合虚拟环境和 requirements.txt 管理项目依赖,并善用镜像源加速下载。
随着 Python 的发展,pip 也在不断进化(如依赖解析器改进、新的特性),定期关注 pip 官方文档 和更新日志,可以让你始终走在最佳实践的前沿。
现在,打开终端,开始用 pip 探索 Python 的无限可能吧!