Python 运维(一):Python 包管理器 pip 的使用指南

在这里插入图片描述

大家好,我是水滴~~

本文将介绍了 Python 的包管理器 pip 的基本使用、常用命令、帮助信息,以及一些常见问题。文章内容包含大量的示例代码,希望能够帮助新手同学快速入门。

《Python入门核心技术》专栏总目录・点这里

文章目录

  • 1. 包管理器
    • 1.1 安装pip
    • 1.2 升级pip
    • 1.3 卸载pip
  • 2. 常用命令
    • 2.1 安装包
    • 2.2 安装指定版本的包
    • 2.3 升级包
    • 2.4 卸载包
    • 2.5 显示已安装的包
    • 2.6 查看包的详细信息
    • 2.7 导出和导入依赖
  • 3. 帮助信息
    • 3.1 语法
    • 3.2 命令
    • 3.3 通用选项
  • 4. 一些疑问
    • 4.1 安装包的资源从哪儿来?
    • 4.2 如何指定国内镜像源来安装?
      • 4.2.1 配置镜像源
      • 4.2.2 临时指定镜像源
    • 4.3 包被安装到哪儿去了?
  • 5. 总结


在Python开发中,使用各种功能强大的第三方库是非常常见的。而pip(Preferred Installer Program)是Python的包管理器,它可以帮助我们方便地安装、升级和管理Python包。本文将介绍pip的使用方法和常见操作,以及一些实用的示例代码。

1. 包管理器

1.1 安装pip

在开始之前,我们需要确保pip已经安装在我们的系统上。对于较新的Python版本(从Python 3.4开始),pip通常已经默认安装了。可以通过在命令行中输入以下命令来检查是否已安装pip:

pip --version

如果已经安装了pip,它将显示pip的版本信息。如果未安装,可以使用下面命令安装:

python -m ensurepip --upgrade

1.2 升级pip

要升级pip,可以使用以下命令:

pip install --upgrade pip

这会使用当前安装的 pip 版本来升级到最新版本。

1.3 卸载pip

要卸载pip,可以使用以下命令:

pip uninstall pip

2. 常用命令

下面这些命令非常之常用,需要你能够背过。

2.1 安装包

要安装一个Python包,可以使用以下命令:

pip install package_name

其中,package_name是要安装的包的名称。例如,要安装名为requests的包,可以运行以下命令:

pip install requests

2.2 安装指定版本的包

如果想要安装指定版本的包,可以使用以下命令:

pip install package_name==version_number

package_name 替换为包的名称,version_number 替换为你想要安装的具体版本号。

例如,要安装 requests 包的 2.25.1 版本,你可以运行以下命令:

pip install requests==2.25.1

pip 将会下载并安装指定版本的包。请注意,如果指定的版本不存在或不可用,pip 将会报错。

2.3 升级包

要升级已安装的包到最新版本,可以使用以下命令:

pip install --upgrade package_name

例如,要升级requests包,可以运行以下命令:

pip install --upgrade requests

2.4 卸载包

要卸载已安装的包,可以使用以下命令:

pip uninstall package_name

例如,要卸载requests包,可以运行以下命令:

pip uninstall requests

2.5 显示已安装的包

要查看已安装的包及其版本信息,可以使用以下命令:

pip list

这将显示已安装包的列表和其对应的版本号。

例如:

aliyun-python-sdk-core 2.14.0
aliyun-python-sdk-kms  2.16.2
async-timeout          4.0.3
Flask                  3.0.0
idna                   3.6
itsdangerous           2.1.2
Jinja2                 3.1.2
jmespath               0.10.0
MarkupSafe             2.1.3
mysql-connector-python 8.2.0
pip                    21.3.1
psutil                 5.9.7
pycparser              2.21
pycryptodome           3.19.0
redis                  5.0.1
requests               2.31.0
setuptools             60.2.0
six                    1.16.0
urllib3                2.1.0
Werkzeug               3.0.1
wheel                  0.37.1

2.6 查看包的详细信息

要查看特定包的详细信息,包括描述、作者、版本等,可以使用以下命令:

pip show package_name

例如,要查看requests包的详细信息,可以运行以下命令:

pip show requests

2.7 导出和导入依赖

为了方便共享项目,可以将项目的依赖项导出到一个文件中,以便其他人可以轻松地安装相同的依赖项。使用以下命令导出依赖项:

pip freeze > requirements.txt

这将把项目的所有依赖写入到requirements.txt文件中。

其他人可以使用以下命令根据requirements.txt文件安装相同的依赖项:

pip install -r requirements.txt

更多命令介绍,请看下面的“帮助信息”章节

3. 帮助信息

使用下面命令可以获取 pip 的帮助信息:

pip --help

下面是对该帮助信息进行的翻译。

3.1 语法

pip <命令> [选项]

3.2 命令

命令描述
install安装包
download下载包
uninstall卸载包
freeze以 requirements 格式输出已安装的包
list列出已安装的包
show显示已安装包的信息
check验证已安装的包具有兼容的依赖项
config管理本地和全局配置
search在 PyPI 上搜索包
cache检查和管理 pip 的 wheel 缓存
index检查包索引中可用的信息
wheel根据你的要求构建 wheel
hash计算包存档的哈希值
completion用于命令补全的辅助命令
debug显示用于调试的信息
help显示命令的帮助信息

3.3 通用选项

选项描述
-h, --help显示帮助信息
–debug使未处理的异常在主要子程序之外传播,而不是将其记录到 stderr
–isolated以隔离模式运行 pip,忽略环境变量和用户配置
-v, --verbose提供更多输出。选项可累加使用,最多可使用 3 次
-V, --version显示版本并退出
-q, --quiet提供较少的输出。选项可累加使用,最多可使用 3 次(对应 WARNING、ERROR 和 CRITICAL 日志级别)
–log 指定详细添加日志的路径
–no-input禁止提示输入
–proxy 以 [user:passwd@]proxy.server:port 的形式指定代理
–retries 每个连接的最大重试次数(默认为 5 次)
–timeout 设置套接字超时时间(默认为 15 秒)
–exists-action 当路径已存在时的默认操作:(s)witch 切换,(i)gnore 忽略,(w)ipe 清除,(b)ackup 备份,(a)bort 中止
–trusted-host 将此主机或主机:端口对标记为受信任,即使它没有有效或任何 HTTPS
–cert PEM 编码的 CA 证书束的路径。如果提供,将覆盖默认设置。有关更多信息,请参阅 pip 文档中的 “SSL Certificate Verification”
–client-cert SSL 客户端证书的路径,一个包含私钥和 PEM 格式证书的单个文件
–cache-dir 将缓存数据存储在
–no-cache-dir禁用缓存
–disable-pip-version-check不定期检查 PyPI 是否有可供下载的新版本 pip。与 --no-index 一起使用
–no-color禁止彩色输出
–no-python-version-warning抑制即将不受支持的 Python 版本的弃用警告
–use-feature 启用可能与向后兼容性不兼容的新功能
–use-deprecated 启用即将在未来移除的弃用功能

4. 一些疑问

4.1 安装包的资源从哪儿来?

pip 安装的包资源来自于 Python Package Index(PyPI)以及其他可配置的包索引源。

Python Package Index(PyPI)是一个公共的包索引,它存储了大量的 Python 包资源。PyPI 是默认的包索引源,当你使用 pip 安装包时,它会从 PyPI 下载包资源。

除了 PyPI,你可以配置 pip 使用其他的包索引源。这些包索引源可以是公共的或私有的,提供不同的包资源集合。例如,你可以使用内部的企业包索引源或第三方的公共包索引源。

当你运行 pip 安装包时,它会首先查询所配置的包索引源,然后下载包资源并安装到你的 Python 环境中。pip 还会处理包的依赖关系,确保所需的其他包也被正确安装。

4.2 如何指定国内镜像源来安装?

在国内使用 PyPI 是很慢的,可以通过配置国内的镜像源来加快 pip 安装包的速度。镜像源是在国内提供的服务器,存储了 PyPI 的包资源的副本,因此可以更快地下载和安装包。

以下是一些常见的国内镜像源,你可以根据自己的需求选择其中之一:

  • 清华大学镜像:https://pypi.tuna.tsinghua.edu.cn/simple
  • 阿里云镜像:https://mirrors.aliyun.com/pypi/simple
  • 豆瓣镜像:https://pypi.doubanio.com/simple
  • 中国科技大学镜像:https://pypi.mirrors.ustc.edu.cn/simple
  • 华中理工大学:http://pypi.hustunique.com
  • 山东理工大学:http://pypi.sdutlinux.org

4.2.1 配置镜像源

你可以按照以下步骤来配置镜像源:

打开 pip 的配置文件pip.conf,该文件通常位于用户主目录下的 .pip 文件夹中。如果没有该文件夹或文件,可以在.pip文件夹中创建一个名为 pip.conf 的文件。

pip.conf 文件中添加以下内容(以阿里云镜像为例):

[global]
index-url = https://mirrors.aliyun.com/pypi/simple

配置完成后,pip 将会使用国内镜像源来下载和安装包,从而提高下载速度。

请注意,pip.conf 文件中的配置选项以 [global] 开头,表示它们是应用于整个 pip 工具的全局配置。

4.2.2 临时指定镜像源

你还可以使用 pip 的命令行参数来临时指定镜像源,而不需要修改配置文件。例如:

pip install package_name -i https://mirrors.aliyun.com/pypi/simple

这将使用阿里云镜像源来安装指定的包。

4.3 包被安装到哪儿去了?

当你使用 pip 安装包时,默认情况下,包将被安装到 Python 环境的相应目录中。具体的安装位置取决于你所使用的操作系统和 Python 环境的配置。

在 Windows 上,默认位置为 PYTHON_HOME\Lib\site-packages;在类 Linux 系统上,默认位置为 /usr/lib/pythonXX/site-packages/usr/local/lib/pythonXX/site-packages

另外,如果你使用虚拟环境(如 venvvirtualenv 等),则包将被安装到虚拟环境的目录中,而不是全局或用户目录。

5. 总结

本文介绍了Python包管理器pip的使用指南。首先,我们了解了如何检查pip是否已安装,并提供了安装pip的指导。然后,我们详细介绍了pip的基本使用方法,包括安装、升级和卸载包,以及显示已安装的包和搜索包的方法。我们还学习了如何导出和导入依赖项,以及如何查看包的详细信息。

最后,我们介绍了 pip 命令的帮助信息,并回答了一些常用问题。

通过本文,读者将学会使用pip来管理和安装Python包,从而方便地使用各种功能强大的第三方库,提高开发效率和代码复用性。

更多内容见官方文档:

  • https://docs.python.org/zh-cn/3/tutorial/venv.html#managing-packages-with-pip
  • https://pip.pypa.io/

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Axure基础

软件&#xff1a; 简单交互动效 动态面板 显示和隐藏 表单元件 表格设计 内联框架 导航菜单 元件交互样式 滚动屏幕与弹幕

JAVA线上事故:递归导致的OOM

最近因为人员离职&#xff0c;接手一个项目&#xff0c;是xxljob的客户端&#xff0c;部署在k8s上&#xff0c;在排查线上工单时&#xff0c;发现了一个问题&#xff1a; 在管理界面上&#xff0c;我惊讶的发现&#xff0c;三个月的时间&#xff0c;2个Pod&#xff0c;每个都重…

代码随想录-刷题第三十三天

122. 买卖股票的最佳时机II 题目链接&#xff1a;122. 买卖股票的最佳时机 II 思路&#xff1a;题目中利润是可以分解的。 加入第0天买入&#xff0c;第三天卖出&#xff0c;利润为price[3] - price[0]。其利润可以分解成(prices[3] - prices[2]) (prices[2] - prices[1]) …

Github 2023-12-21 开源项目日报 Top10

根据Github Trendings的统计&#xff0c;今日(2023-12-21统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目4Go项目1Jupyter Notebook项目1C#项目1Solidity项目1TypeScript项目1C项目1CSS项目1 GPT-Engineer…

【Linux C | 文件I/O】文件的打开关闭 | open、creat、colse 函数

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

PHP开发日志——循环和条件语句嵌套不同,效率不同(循环内加入条件语句,条件语句判断后加入循环,array_map函数中加入条件语句)

十多年前开发框架时&#xff0c;为了效率不断试过各种代码写法&#xff0c;今天又遇到了&#xff0c;想想php8时代会不会有所变化&#xff0c;结果其实也还是和当年一样&#xff0c;但当年没写博客&#xff0c;但现在可以把数据记录下来了。 项目基本情况是一个考试系统调用题库…

【数据结构】线段树算法总结(单点修改)

知识概览 用作单点修改的线段树有4个操作&#xff1a; pushup&#xff1a;由子节点的信息计算父节点的信息build&#xff1a;初始化一棵树modify&#xff1a;修改一个区间query&#xff1a;查询一个区间 线段树用一维数组来存储&#xff1a; 编号是x的节点&#xff0c;它的父节…

2023年12月GESP Python三、四级编程题真题解析

三、2023年12月GESP Python三级编程题 【三级编程题1】 【试题名称】&#xff1a;小猫分鱼 【问题描述】 海滩上有一堆鱼&#xff0c;N只小猫来分。第一只小猫把这堆鱼平均分为N份&#xff0c;多了i<N条鱼&#xff0c;这只小猫把多的i条鱼扔入海中&#xff0c;拿走了一份…

Java_集合进阶(Collection和List系列)

一、集合概述和分类 1.1 集合的分类 已经学习过了ArrayList集合&#xff0c;但是除了ArrayList集合&#xff0c;Java还提供了很多种其他的集合&#xff0c;如下图所示&#xff1a; 我想你的第一感觉是这些集合好多呀&#xff01;但是&#xff0c;我们学习时会对这些集合进行…

读书笔记产品经理学习笔记1-忘掉技术,先看客户需求

技术到产品思维的转换 以前做技术的时候&#xff0c;扮演的角色是怎样多快好省的完成开发。现在做产品了&#xff0c;你得自己定产品方案&#xff0c;让别人来开发。最重要的是先弄清楚客户的需求是什么&#xff0c;要解决什么问题&#xff0c;再看产品怎么设计&#xff0c;然…

用ImageJ处理高斯光束的光斑

文章目录 图像显示图像裁剪高斯拟合 图像显示 ImageJ是著名的科研图像处理工具&#xff0c;提供了非常强大的分析功能&#xff0c;处理光斑图像简直是小菜一碟。这里推荐下载fiji&#xff0c;是内置了大量插件的ImageJ&#xff0c;可以满足各种科研上的图像处理需求。 打开一…

RTOS中断管理的简单应用

我们在stm32f103c8t6单片机上验证RTOS中断管理&#xff0c;利用stm32cube进行RTOS的配置。裸机的时钟源默认是 SysTick&#xff0c;但是开启 FreeRTOS 后&#xff0c;FreeRTOS会占用 SysTick &#xff08;用来生成1ms 定时&#xff0c;用于任务调度&#xff09;&#xff0c;所以…

maven学习和maven聚合工程搭建

1.学习maven maven的概念 项目管理工具 &#xff0c;对jar进行依赖管理&#xff0c;编译&#xff0c;打包&#xff0c;单元测试&#xff0c;安装&#xff0c;部署&#xff0c;贯穿整个项目 为什么要学maven 要解决的问题&#xff1a; 不同的开发工具开发出来的项目目录结构…

智能优化算法应用:基于非洲秃鹫算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于非洲秃鹫算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于非洲秃鹫算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.非洲秃鹫算法4.实验参数设定5.算法结果6.…

PostgresSQL数据库中分区和分表的区别以及PostgresSQL创建表分区分表示例

1.分区分表理解 数据库分区和分表都是数据库中常用的数据分散存储技术&#xff0c;但它们的实现方式和应用场景有所不同。 分表&#xff1a;将一个大的表拆分成多个小的表&#xff0c;每个子表存储一部分数据。分表可以减轻单个表的数据量&#xff0c;提高查询效率&#xff0c…

七、W5100S/W5500+RP2040之MicroPython开发<HTTP Client示例>

文章目录 1. 前言2. 相关网络信息2.1 简介2.2 原理2.3 请求方法2.4 应用 3. WIZnet以太网芯片4. HTTP Client通信示例讲解以及使用4.1 程序流程图4.2 测试准备4.3 连接方式4.4 相关代码4.5 烧录验证 5. 注意事项6. 相关链接 1. 前言 在这个智能硬件和物联网时代&#xff0c;Mic…

Swagger2接口测试文档

目录 一、Swagger简介 1.1 Swagger是什么&#xff1f; 1.2 为什么要用Swagger 1.3 Swagger注解 二、Spring集成Swagger 三、测试环境配置 一、Swagger简介 1.1 Swagger是什么&#xff1f; Swagger是一款RESTFUL接口的文档在线自动生成功能测试功能软件。Swagger是一个规…

Qt 国际化——创建中英文翻译步骤

Qt 国际化——创建中英文翻译步骤 说明&#xff1a;之前我的csdn博客&#xff0c;第一篇文章发表的就是Qt国际化的文章&#xff08;点击打开&#xff09;&#xff0c;写的也过于简单了&#xff1a; 今天&#xff0c;这篇文章再详细的记录下&#xff0c;中英文翻译的步骤。 一…

【Python】循环语句

一、while循环的基础语法 二、while循环的嵌套应用 三、while循环的嵌套案例 四、for循环的基础语法 五、for循环的嵌套应用 六、循环中断 : break和continue 一、while循环的基础语法 使用while循环的基础应用 while循环语句 while循环注意点 while的条件需得到布尔类型&am…

高通平台开发系列讲解(系统篇)系统关机流程

文章目录 一、关机流程图二、执行关机流程2.1、kernel_shutdown_prepare流程2.2、migrate_to_reboot_cpu流程2.3、syscore_shutdown流程2.4、machine_power_off流程沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇章主要图解高通平台系统关机流程。 一、关机流程图…