pip
pip 是 Python 的官方包管理器,随 Python 3.4+ 自动安装,用于从 PyPI(Python Package Index)安装、更新和卸载第三方库。
现代项目推荐配合虚拟环境(venv / virtualenv)或 uv(更快的替代工具)使用,避免全局包污染。
安装与升级
# 验证安装
pip --version
pip3 --version # Python 3 专用命令(部分系统需区分)
# 升级 pip 自身
pip install --upgrade pip
python -m pip install --upgrade pip # 推荐写法,确保使用当前 Python 的 pip安装包
# 安装最新版本
pip install requests
# 安装指定版本
pip install requests==2.31.0
# 安装版本范围
pip install "requests>=2.28.0,<3.0.0"
# 安装多个包
pip install flask sqlalchemy pytest
# 升级已安装的包
pip install --upgrade requests
# 从 requirements.txt 批量安装
pip install -r requirements.txt
# 安装但不依赖缓存(强制重新下载)
pip install --no-cache-dir requests卸载与查看
# 卸载
pip uninstall requests
pip uninstall requests -y # 跳过确认
# 查看已安装的包
pip list
pip list --outdated # 查看可升级的包
# 查看某个包的详情(版本、依赖、安装位置)
pip show requests
# 查看包的依赖关系树
pip install pipdeptree
pipdeptreerequirements.txt
requirements.txt 是 Python 项目的依赖声明文件,类似 npm 的 package.json:
# 导出当前环境所有已安装包(含间接依赖,版本精确锁定)
pip freeze > requirements.txt
# 只导出直接依赖(推荐,避免锁定过多间接包)
pip install pipreqs
pipreqs . --encoding=utf-8 # 扫描代码中的 import,自动生成requirements.txt 内容示例:
# 生产依赖
flask==3.0.3
sqlalchemy==2.0.30
pydantic==2.7.1
redis==5.0.4
# 带版本范围(灵活升级)
requests>=2.28.0
# 带注释
pytest>=7.0.0 # 测试框架
多环境拆分
requirements/
├── base.txt # 生产依赖
├── dev.txt # 开发工具(-r base.txt)
└── test.txt # 测试工具(-r base.txt)
# requirements/dev.txt
-r base.txt
black
isort
pylint
ipython
pip install -r requirements/dev.txt虚拟环境
虚拟环境隔离每个项目的依赖,避免全局包版本冲突:
# 创建虚拟环境(Python 3.3+ 内置)
python -m venv .venv
# 激活
source .venv/bin/activate # macOS / Linux
.venv\Scripts\activate # Windows (cmd)
.venv\Scripts\Activate.ps1 # Windows (PowerShell)
# 激活后命令提示符显示 (.venv)
(.venv) $ pip install flask # 安装到虚拟环境,不影响全局
# 退出虚拟环境
deactivate.venv 目录不应提交到 Git,在 .gitignore 中添加:
.venv/
__pycache__/
*.pyc
镜像源配置(国内加速)
临时使用
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple/永久配置
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn或直接编辑配置文件:
# ~/.config/pip/pip.conf(Linux/macOS)
# %APPDATA%\pip\pip.ini(Windows)
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/
trusted-host = pypi.tuna.tsinghua.edu.cn
timeout = 60常用国内镜像:
| 镜像 | 地址 |
|---|---|
| 清华大学 | https://pypi.tuna.tsinghua.edu.cn/simple/ |
| 阿里云 | https://mirrors.aliyun.com/pypi/simple/ |
| 中科大 | https://pypi.mirrors.ustc.edu.cn/simple/ |
| 腾讯云 | https://mirrors.cloud.tencent.com/pypi/simple/ |
私有包仓库
企业内部可使用 Nexus / Artifactory / devpi 搭建私有 PyPI:
# pip.conf 配置私有源
[global]
index-url = https://pypi.company.com/simple/
extra-index-url = https://pypi.org/simple/ # 回退到官方源
[install]
trusted-host = pypi.company.compip vs uv vs conda
| 工具 | 速度 | 虚拟环境 | 适用场景 |
|---|---|---|---|
| pip | 中等 | 需配合 venv | 通用,官方标准 |
| uv | 极快(Rust 实现) | 内置 | 现代 Python 项目首选 |
| conda | 慢 | 内置 | 数据科学(管理非 Python 依赖) |
常用命令速查
pip install <pkg> # 安装
pip install <pkg>==<ver> # 指定版本
pip install -r requirements.txt # 批量安装
pip install --upgrade <pkg> # 升级
pip uninstall <pkg> # 卸载
pip list # 列出已安装
pip list --outdated # 查看可升级
pip show <pkg> # 包详情
pip freeze > requirements.txt # 导出依赖
pip config list # 查看 pip 配置