Python3 pip 详解

news/2025/9/29 10:16:11/文章来源:https://www.cnblogs.com/xtcoding/p/19118217

Python3 pip 详解

pip 是 Python 生态中最核心的包管理工具,用于安装、升级、卸载第三方 Python 库,是 Python 开发者日常工作中不可或缺的工具。本文将从基础概念到高级用法,全面解析 pip 在 Python3 环境下的使用方法与最佳实践。

一、pip 是什么?

pip(Pip Installs Packages)是 Python 的官方包管理工具,由 Python 打包管理局(PyPA)维护,用于自动化管理 Python 第三方库的安装、升级、卸载等操作。其核心功能包括:
 
  • 从 Python 官方仓库 PyPI(Python Package Index)下载并安装库
  • 管理已安装库的版本(升级、降级)
  • 导出 / 导入项目依赖列表(requirements.txt
  • 配置镜像源、缓存等高级设置

二、pip 的安装与验证

Python3.4+(含 3.4)和 Python2.7.9+ 已默认内置 pip,无需单独安装。若系统中未安装 pip(如部分精简版 Linux 系统),需手动安装。

1. 检查 pip 是否安装

在终端(命令提示符)中执行以下命令,验证 Python3 对应的 pip 是否存在:
# 查看 pip3 版本(推荐,明确对应 Python3)
pip3 --version# 或(若系统中 pip 已关联 Python3)
pip --version
 
 
若输出类似 pip 23.3.1 from /usr/local/lib/python3.10/site-packages/pip (python 3.10),则表示安装成功,且明确对应 Python3。

2. 手动安装 pip(针对未预装场景)

方法 1:使用 ensurepip(Python3 内置工具)

 
# 为 Python3 安装 pip
python3 -m ensurepip --upgrade
 

方法 2:通过官方脚本安装

 
# 下载安装脚本
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py# 用 Python3 执行脚本(确保使用 python3 命令)
python3 get-pip.py
 

方法 3:通过系统包管理器(Linux)

 
# Ubuntu/Debian
sudo apt install python3-pip# CentOS/RHEL
sudo yum install python3-pip# macOS(需先安装 Homebrew)
brew install python3  # 安装 Python3 时会自动包含 pip3
 

3. 升级 pip 到最新版本

pip 本身会不断更新,建议定期升级:
 
# 升级 pip3(推荐)
pip3 install --upgrade pip# 或
python3 -m pip install --upgrade pip  # 更稳妥,直接指定 Python3 解释器
 

三、pip 核心命令:日常使用必备

1. 安装第三方库

基础安装(最新版本)

 
# 安装指定库(如 requests)
pip3 install requests
 

安装指定版本

 
# 安装 2.25.1 版本的 requests
pip3 install requests==2.25.1# 安装 >=2.25.0 且 <3.0.0 的版本
pip3 install requests>=2.25.0,<3.0.0
 

安装本地包(开发场景)

若需安装本地开发的库(如 .tar.gz 或 .whl 文件):
 
# 安装本地 wheel 包
pip3 install ./requests-2.25.1-py2.py3-none-any.whl# 安装本地源码包(.tar.gz 或解压后的目录)
pip3 install ./requests-2.25.1.tar.gz
 

从 URL 安装

支持从 Git 仓库、HTTP 链接直接安装:
 
# 从 Git 仓库安装(适用于安装开发中的版本)
pip3 install git+https://github.com/psf/requests.git# 从 HTTP 链接安装
pip3 install https://example.com/packages/requests-2.25.1.tar.gz
 

2. 升级已安装的库

# 升级 requests 到最新版本
pip3 install --upgrade requests
 

3. 卸载库

 
# 卸载 requests
pip3 uninstall requests
 
 
执行后会提示确认,输入 y 即可卸载。

4. 查看已安装的库

 
# 列出所有已安装的库(含版本)
pip3 list# 列出已安装库的详细信息(包括安装路径、依赖等)
pip3 show requests
 

5. 导出与导入项目依赖

这是协作开发中最常用的功能,通过 requirements.txt 文件统一管理项目依赖。

导出依赖列表

# 将当前环境的所有依赖(含版本)导出到 requirements.txt
pip3 freeze > requirements.txt
 
 
生成的 requirements.txt 示例:
 
requests==2.25.1
numpy==1.21.0
pandas==1.3.0
 

导入依赖列表(安装项目所需库)

# 根据 requirements.txt 安装所有依赖
pip3 install -r requirements.txt
 

四、pip 高级配置:提升使用效率

1. 配置国内镜像源(解决下载慢问题)

PyPI 官方源在国内访问速度较慢,建议配置国内镜像源(如阿里云、豆瓣、清华等)。

临时使用镜像源

通过 -i 参数指定镜像源,仅对当前命令有效:
 
# 使用阿里云镜像安装 requests
pip3 install requests -i https://mirrors.aliyun.com/pypi/simple/
 

永久配置镜像源

需创建 / 修改 pip 配置文件,不同系统路径如下:
 
  • Linux/Mac~/.pip/pip.conf(若不存在则创建)
  • Windows%APPDATA%\pip\pip.ini%APPDATA% 通常为 C:\Users\用户名\AppData\Roaming
 
配置文件内容(以阿里云为例):
 
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
trusted-host = mirrors.aliyun.com  # 信任镜像源(避免 HTTPS 证书问题)
 
 
常用国内镜像源:
 
  • 阿里云:https://mirrors.aliyun.com/pypi/simple/
  • 豆瓣:https://pypi.doubanio.com/simple/
  • 清华:https://pypi.tuna.tsinghua.edu.cn/simple/

2. 管理 pip 缓存

pip 会缓存下载的包(默认路径:~/.cache/pip(Linux/Mac)或 %APPDATA%\pip\cache(Windows)),避免重复下载。
 
# 查看缓存目录
pip3 cache dir# 清理所有缓存
pip3 cache purge# 清理指定包的缓存
pip3 cache remove requests
 

3. 安装到用户目录(避免权限问题)

在没有管理员权限的环境中(如共享服务器),可将库安装到用户目录,避免 Permission denied 错误:
 
# 安装到用户目录(无需 sudo)
pip3 install requests --user
 
 
安装路径通常为:~/.local/lib/python3.x/site-packages(Linux/Mac)或 %APPDATA%\Python\Python3x\site-packages(Windows)。

4. 开发模式安装(Editable Install)

开发自己的 Python 库时,可使用 -e 参数安装 “可编辑模式”,修改代码后无需重新安装即可生效:
 
# 进入库的源码目录(含 setup.py 或 pyproject.toml)
cd my_project# 以开发模式安装
pip3 install -e .
 

五、虚拟环境中的 pip 使用

在实际开发中,不同项目可能依赖不同版本的库(如 A 项目需 requests==2.20,B 项目需 requests==2.30),直接使用全局环境会导致版本冲突。此时需通过虚拟环境隔离依赖,而 pip 在虚拟环境中会自动将库安装到当前环境中,不影响全局。

虚拟环境中 pip 的使用流程

# 1. 创建虚拟环境(Python3 内置 venv 模块)
python3 -m venv myenv# 2. 激活虚拟环境
# Linux/Mac
source myenv/bin/activate
# Windows(命令提示符)
myenv\Scripts\activate.bat
# Windows(PowerShell)
myenv\Scripts\Activate.ps1# 3. 激活后,终端会显示 (myenv) 前缀,此时 pip3 安装的库仅在当前环境生效
pip3 install requests==2.25.1  # 安装到 myenv 环境# 4. 导出当前环境的依赖
pip3 freeze > requirements.txt# 5. 退出虚拟环境
deactivate
 

六、常见问题与解决方案

1. 权限错误(Permission denied)

问题:安装库时提示 Permission denied
 
原因:没有全局安装权限(非管理员用户)。
 
解决
 
  • 用 --user 参数安装到用户目录:pip3 install requests --user
  • 或使用虚拟环境(推荐)。

2. 版本冲突(Version conflict)

问题:安装库时提示 Cannot install ... because of conflicting dependencies
 
原因:已安装的库与待安装库存在版本依赖冲突。
 
解决
 
  • 卸载冲突的库后重新安装:pip3 uninstall 冲突库 && pip3 install 目标库
  • 或使用虚拟环境,隔离不同项目的依赖。

3. 镜像源连接失败

问题:使用镜像源时提示 Could not find a version that satisfies the requirement
 
原因:镜像源同步延迟或 URL 错误。
 
解决
 
  • 检查镜像源 URL 是否正确(如阿里云为 https://mirrors.aliyun.com/pypi/simple/,注意结尾的 /
  • 临时切换回官方源:pip3 install requests -i https://pypi.org/simple/

4. pip 命令不存在(Command not found)

问题:执行 pip3 时提示命令不存在。
 
原因:Python3 未安装,或 pip3 未添加到系统 PATH。
 
解决
 
  • 重新安装 Python3(确保勾选 “Add Python to PATH”)
  • 直接通过 Python 调用:python3 -m pip install requests

七、总结

pip 是 Python 生态的基石工具,掌握其用法能极大提升开发效率。核心要点:
 
  • 优先使用 pip3 避免与 Python2 混淆
  • 用 requirements.txt 管理项目依赖,方便协作
  • 配置国内镜像源解决下载慢问题
  • 结合虚拟环境隔离不同项目的依赖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/921681.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IP5306 测试

IP5326使用测试测试 1 (寄存器控制)在进入 I2C 模式前会进行检测,需要引脚首先是高电平才行。如果电源与MCU的 上电不能同步,将不会进入I2C 模式。I2C 读取充电状态,充电进行状态并不是总是正常,好在其他状态也会…

AI元人文:悟空博弈框架

AI元人文:悟空博弈框架 文/岐金兰AI元人文:悟空博弈框架 ——基于三值模型与价值原语的人机协同决策体系命名释义「悟空」勘破表象:借AI之力洞见价值冲突的本质,超越人类认知局限;悬荡空明:在计算与人文的临…

phpcms网站打不开苏州做网站费用明细

图像识别是计算机视觉领域的一个重要分支&#xff0c;它的基本任务是从图像中提取出有助于分类或识别的信息&#xff0c;这些信息通常称为“特征”。特征提取是图像识别中的关键技术之一&#xff0c;它决定了识别系统性能的好坏。以下是几种常见的特征提取技术&#xff1a; 边…

sway - wayland下截图方案

bindsym Ctrl+Alt+q exec grim -g "$(slurp)" - | wl-copy && wl-paste > /tmp/screan_snapshot_file && swappy -f /tmp/screan_snapshot_filewl-copy 获图片字节 wl-paste 将图片字节写…

不同网络间文件互传怎么实现?

不同网络间文件互传怎么实现的需求,常出现在企业内网与外网、涉密网与非涉密网间的数据交换场景中。传统方法如人工拷贝、云盘同步等,存在数据泄露、合规性缺失及操作繁琐等问题。而“Ftrans Ferry跨网文件安全交换系…

实用指南:Qt容器QList、QLinkedList、QVector特性浅谈

实用指南:Qt容器QList、QLinkedList、QVector特性浅谈2025-09-29 10:03 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; d…

模板网站建设推广大埔县住房城乡规划建设局网站

文章目录1.什么是static&#xff1f;2.static关键字的作用是什么&#xff1f;3.静态变量和非静态变量的区别&#xff1f;4.static可以修饰局部变量吗&#xff1f;5.可以通过this访问静态变量吗&#xff1f;6.静态方法能否调用非静态方法&#xff1f;7.静态变量、普通变量、静态…

sway wayland下 wps-office无法输入中文

alias wps="LANG=zh_CN.UTF-8 LC_ALL=zh_CN.UTF-8 XMODIFIERS="@im=fcitx" GTK_IM_MODULE="fcitx" QT_IM_MODULE="fcitx" SDL_IM_MODULE=fcitx GLFW_IM_MODULE=ibus wps"

科学史笔记

2025.9.29 人工智能法,机器学习史。

Spring XML 设置简介

Spring XML 设置简介pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "…

2025 年真空泵品牌最新权威推荐排行榜:覆盖真空泵维修,真空泵机组,真空泵油,真空泵配件领域选择指南

当前工业领域中,真空泵作为太阳能、真空镀膜、电子电路板等行业的核心设备,其品质与服务直接关乎企业生产效率与成本控制。但随着市场需求激增,大量品牌涌入导致市场鱼龙混杂,部分产品存在抽气效率低、运行不稳定、…

专业的跨网文件交换系统 和传统FTP/U盘拷贝有什么区别?

跨网文件交换系统是用来专门解决跨隔离网络文件交换问题的,传统的FTP、U盘,以及网闸自带的摆渡功能等,其实严格意义上来说,并不能算是跨网文件交换系统,只能算是一种跨网传输方式。这些传统的方式,如今已经或多或…

Group Theory Note

Laws of Composition Def. (Laws of Composition) any rule combining pairs of element of S to get another element of S: #S\times S \to S#. Def. (Associative law) Skipped Prop. 2.1.4 (Associative law #\Lef…

InnoDB ReplicaSet和其他数据库高可用方案有什么区别?

InnoDB ReplicaSet和其他数据库高可用方案有什么区别?要理解 InnoDB ReplicaSet 与其他数据库高可用方案的区别,需先明确其核心定位:它是 MySQL 原生轻量级高可用方案,基于 GTID(全局事务标识符)设计,聚焦 “简…

CF *2600 思维题 2

CF *2600 思维题 2 A CF1819D Misha and Apples \(\text{Link}\)之前做过的原题,现在还能想起来。考虑我们最后取得一定是一段后缀,那么我们想让这个后缀尽可能的长。我们从左往右遍历 \(i\),并维护指针 \(p\) 表示…

中低压配网设备介绍

一、网络结构形式1、树状结构(放射式):形式简单,但没有转供电能力,只能通过分段开关、支线开关来缩小停电范围:2、环网结线:形式相对树状结构复杂,具备转供电能力,环网结线有以下几种方式:(1)典型结线,转供电能力…

设计教程网站推荐湖南网络推广排名

所用环境 宝塔云服务器 log4j2 是Apache的⼀个java日志框架&#xff0c;我们借助它进行日志相关操作管理&#xff0c;然而在2021年末log4j2爆出了远程代码执行漏洞&#xff0c;属于严重等级的漏洞。 apache log4j通过定义每⼀条日志信息的级别能够更加细致地控制日志⽣成地过…

完整教程:南华 NHJX-13 型底盘间隙仪:机动车底盘安全检测的核心设备

完整教程:南华 NHJX-13 型底盘间隙仪:机动车底盘安全检测的核心设备pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &q…

vue3使用路由配置

1、安装依赖 npm i vue-router2、创建配置文件 index.js import {createRouter, createWebHistory} from vue-routerconst router = createRouter({history: createWebHistory(),routes: [] })// 路由前置守卫 router.…