python总结-pip
简介
pip 是 Python 的官方包管理工具,用于安装、更新、卸载和管理第三方库(即“包”)。几乎所有 Python 项目都依赖它来管理依赖。
功能:
- 下载并安装第三方库(从https://pypi.org/下载)
- 卸载包
- 管理依赖:通过 requirements.txt 文件批量安装项目依赖。
- 查看已安装包:列出当前环境中的所有包及其版本。
- 升级包:将包更新到最新版本。
- 创建虚拟环境(间接):通常与 venv 或 virtualenv 配合使用,隔离项目依赖。
命令
安装包
# 安装最新版本
pip install 包名 # 例如:pip install requests
# 安装指定版本
pip install 包名==版本号 # 例如:pip install numpy==1.21.0
# 安装符合版本范围的包(如 >=1.0,<2.0)
pip install "包名>=1.0,<2.0"
使用国内镜像源加速下载,PyPI 官方源在国内访问较慢,可替换为国内镜像(如阿里云、清华、腾讯云):
# 临时使用镜像源安装
pip install 包名 -i https://pypi.tuna.tsinghua.edu.cn/simple
# 永久配置镜像源(修改 pip 配置文件)
# Windows: 创建或修改 %APPDATA%\pip\pip.ini
# Linux/macOS: 创建或修改 ~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
安装特定平台的包
# 安装与当前系统兼容的预编译二进制包(如 Windows 的 .whl 文件)
pip install --only-binary :all: 包名
# 强制从源码编译安装(适用于需要自定义编译的包)
pip install --no-binary :all: 包名
管理用户级安装(避免系统权限问题)
# 将包安装到用户目录(无需管理员权限)
pip install --user 包名
# 用户级包的安装路径(Windows 示例)
# C:\Users\YourName\AppData\Roaming\Python\Python39\site-packages
导出和导入包列表
# 导出当前环境的所有包及其版本(精确到版本号)
pip freeze > requirements.txt
# 从 requirements.txt 安装(确保环境一致)
pip install -r requirements.txt
卸载包
pip uninstall 包名 # 例如:pip uninstall requests
查看已安装包
# 列出所有已安装的包
pip list
# 查看包的详细信息(如版本、依赖、路径)
pip show 包名 # 例如:pip show requests
升级包
# 升级单个包到最新版本
pip install --upgrade 包名 # 例如:pip install --upgrade requests
# 升级所有过时的包(谨慎使用!)
pip list --outdated # 先查看可升级的包
pip install --upgrade $(pip list --outdated | awk 'NR>2 {print $1}') # Linux/macOS
# Windows 需手动逐个升级或使用脚本
从文件安装依赖
# 从 requirements.txt 安装所有依赖(常用于项目部署)
pip install -r requirements.txt
# 生成 requirements.txt(记录当前环境的所有包及其版本)
pip freeze > requirements.txt
pip 的常见问题
权限错误(Permission denied)
原因:尝试在系统目录安装包但无管理员权限。
解决方案:
使用 --user 参数安装到用户目录。
--user 参数用于将包安装到当前用户的本地目录,而不是系统级的 Python 目录。这样可以避免权限问题(无需管理员权限),同时防止污染全局 Python 环境。
--user 参数的作用
- 安装路径:包会被安装到用户目录下的
site-packages文件夹中。- Windows:
C:\Users\<用户名>\AppData\Roaming\Python\<Python版本>\site-packages - Linux/macOS:
~/.local/lib/python<版本>/site-packages
- Windows:
- 无需管理员权限:适合没有系统管理员权限或不想修改全局 Python 环境的情况。
- 优先级:用户目录的包会优先于系统目录的包被导入(如果存在同名包)。
示例:
pip install --user 包名
# 安装指定版本的包到用户目录
pip install --user 包名==版本号
# 从本地文件安装到用户目录
pip install --user ./package.whl
如果还提示 Permission denied,可能是用户目录的权限问题。尝试:
pip install --user --ignore-installed 包名
包冲突
现象:安装包时提示 Could not find a version that satisfies... 或 Dependency conflict。
解决方案:
- 使用虚拟环境隔离项目依赖。
- 手动调整 requirements.txt 中的版本约束。
下载速度慢
解决方案:
- 替换为国内镜像源(见上文)。
- 使用 pip download 离线安装包
pip 版本过旧
现象:提示 You are using pip version X.Y.Z, however version A.B.C is available.
解决方案:
python -m pip install --upgrade pip # 升级 pip 自身
pip 与 Python 环境的关系
全局安装:包安装到系统 Python 的 site-packages 目录,影响所有项目。
虚拟环境:每个虚拟环境有独立的 site-packages,隔离依赖(推荐)。
# 创建虚拟环境
python -m venv myenv
# 激活虚拟环境
# Windows: myenv\Scripts\activate
# Linux/macOS: source myenv/bin/activate
# 在虚拟环境中使用 pip
pip install 包名

浙公网安备 33010602011771号