一、pip 简介
pip 是 Python 的包管理工具,用于安装、卸载和管理 Python 第三方包。它是 Python 开发中最常用的工具之一,几乎所有 Python 开发者都离不开。
二、pip 基础命令
1. 查看 pip 版本与帮助
# 查看 pip 版本
pip --version
pip -V
# 查看 pip 帮助
pip --help
pip install --help # 查看特定命令的帮助
2. 安装包
# 安装最新版本
pip install package_name
pip install requests # 示例:安装 requests
# 安装指定版本
pip install package_name==1.0.4
pip install django==4.2.7
# 安装大于等于某版本
pip install package_name>=1.0.0
# 安装多个包
pip install requests django flask
# 从 requirements.txt 安装
pip install -r requirements.txt
# 安装到用户目录(无需管理员权限)
pip install --user package_name
# 离线安装(从本地whl文件)
pip install package.whl
3. 卸载包
# 卸载单个包
pip uninstall package_name
pip uninstall requests
# 卸载多个包
pip uninstall package1 package2 package3
# 卸载所有包(谨慎使用)
pip freeze | xargs pip uninstall -y
4. 查看已安装的包
# 列出所有已安装包
pip list
# 列出过期包(有更新版本的)
pip list --outdated
# 以requirements格式列出
pip freeze
# 查看特定包的详细信息
pip show package_name
pip show requests
5. 搜索包
# 搜索包(PyPI上搜索)
pip search keyword
pip search web framework
# 注意:pip search 可能在某些版本不可用,可以使用:
pip index versions package_name # 查看可用版本
6. 升级包
# 升级 pip 自身
pip install --upgrade pip
python -m pip install --upgrade pip
# 升级特定包
pip install --upgrade package_name
pip install -U requests
# 升级所有包(通过脚本)
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
三、requirements.txt 管理
1. 生成 requirements.txt
# 生成当前环境的所有包
pip freeze > requirements.txt
# 只生成当前项目使用的包(需要pipreqs)
pip install pipreqs
pipreqs . --force
2. 使用 requirements.txt
# 安装所有依赖
pip install -r requirements.txt
# 安装指定环境的依赖
pip install -r requirements/dev.txt
pip install -r requirements/prod.txt
3. requirements.txt 示例
# 指定版本
requests==2.31.0
django==4.2.7
# 大于等于某版本
flask>=2.0.0
# 兼容版本
numpy>=1.21.0,<2.0.0
# 从git安装
git+https://github.com/user/repo.git@branch
四、pip 配置与源管理
1. 配置国内镜像源
# 临时使用
pip install package_name -i https://pypi.tuna.tsinghua.edu.cn/simple
# 永久配置(创建/修改 ~/.pip/pip.conf)
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
# Windows 路径:C:\Users\用户名\pip\pip.ini
2. 常用国内源
# 清华源
https://pypi.tuna.tsinghua.edu.cn/simple
# 阿里源
https://mirrors.aliyun.com/pypi/simple/
# 豆瓣源
https://pypi.douban.com/simple/
# 中科大源
https://pypi.mirrors.ustc.edu.cn/simple/
五、虚拟环境中的 pip
1. 创建和使用虚拟环境
# 创建虚拟环境
python -m venv myenv
# 激活虚拟环境
# Linux/Mac
source myenv/bin/activate
# Windows
myenv\Scripts\activate
# 退出虚拟环境
deactivate
2. 在虚拟环境中使用 pip
# 激活环境后,pip 自动使用环境内的包
pip install package_name
# 查看环境中的包
pip list
六、pip 高级用法
1. 查看包依赖
# 查看包的依赖关系
pip show package_name
pip show requests # 会显示 Requires 和 Required-by
2. 检查包兼容性
# 检查已安装包的兼容性
pip check
# 检查特定包
pip check package_name
3. 下载包但不安装
# 下载包到当前目录
pip download package_name
# 下载到指定目录
pip download -d ./packages/ package_name
# 下载依赖但不安装
pip download -r requirements.txt -d ./packages/
4. 从本地目录安装
# 安装本地开发包
pip install -e ./my-package/
# -e 表示可编辑模式,修改源码后无需重新安装
七、常见问题与解决方案
1. 权限问题
# 错误:Permission denied
# 解决方案1:使用 --user
pip install --user package_name
# 解决方案2:使用 sudo(Linux/Mac)
sudo pip install package_name
# 解决方案3:使用虚拟环境(推荐)
2. 版本冲突
# 错误:package A requires B<2.0, but you have B 2.1
# 解决方案:创建新的虚拟环境,精确指定版本
pip install package_name==1.0.0
3. 安装超时
# 设置超时时间(秒)
pip install --timeout 60 package_name
# 使用国内镜像源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name
4. 查看包的所有可用版本
# 方法1:使用 pip index
pip index versions package_name
# 方法2:通过输入错误版本号触发显示
pip install package_name==
八、实战场景
场景1:新项目初始化
# 1. 创建虚拟环境
python -m venv venv
source venv/bin/activate
# 2. 升级 pip
python -m pip install --upgrade pip
# 3. 安装依赖
pip install -r requirements.txt
# 4. 验证安装
pip list
场景2:项目依赖更新
# 1. 查看过期包
pip list --outdated
# 2. 更新特定包
pip install -U package_name
# 3. 测试项目是否正常
python test.py
# 4. 更新 requirements.txt
pip freeze > requirements.txt
场景3:迁移项目到新环境
# 原环境导出
pip freeze > requirements.txt
# 新环境导入
python -m venv newenv
source newenv/bin/activate
pip install -r requirements.txt
九、pip vs pip3
# pip 通常指向默认 Python 版本
pip --version
# pip3 明确指向 Python 3
pip3 --version
# 在多 Python 版本环境中建议使用:
python -m pip # 明确指定使用哪个 Python 的 pip
python3 -m pip
十、总结
pip 是 Python 生态中不可或缺的工具,掌握这些常用命令能大大提高开发效率。
- 基础操作:
install、uninstall、list、show - 依赖管理:
freeze、requirements.txt - 环境隔离:虚拟环境 + pip
- 源管理:配置国内镜像加速
- 版本控制:精确指定版本号
记住:使用虚拟环境 + requirements.txt 是最佳实践,可以避免很多包管理问题。


发表回复