Python 牛逼的 pip包管理工具

Python 牛逼的 pip包管理工具


一、PIP 介绍

简单来说,pip 就是 Python的 包管理工具,该工具提供了对Python 包的下载、查找、安装、卸载的功能
从Python 3 >= Python 3.4 、Python2 >= Python2.7.9 版本开始,pip默认包含在Python的安装程序中,在安装Python时将会自动被安装省事方便

pip 是一个命令行程序,安装 pip 后,可以在命令提示符(俗称黑终端)中执行命令语句


二、PIP 基本使用

在使用 pip 安装包之前,应检查 pip 是否已正确安装,在终端输入以下指令

  • Windows: pip --versionpip -Vpy -m pip --version

    一些 Liunx 系统也能用这些指令

  • Unix / macOS: $ python -m pip --version

上面的指令会显示 pip的版本和路径,能正确显示即为正确安装

1) 直接安装

书写格式: pip install [包名]

拿安装 requests 库为例👇🏻

pip install requests

值得注意的是,如果不指定版本安装,默认安装 适用当前Python 的最新版本

2) 指定版本安装

书写格式: pip install [包名]==[版本号]

指定安装 requests2.24.0 版本 为例👇🏻

pip install requests==2.24.0

三、PIP 切换国内镜像源(重点)

在下载 Python包 的时候,有没有想过一个问题,这些包是从哪里下载的?
在默认情况下 pip 将从 Python Package Index https://pypi.org 安装软件包

由于语言是 老外开发设计的,因此使用 PIP 的默认下载时是从国外的网站加载,这就照成了下载速度慢,下载不稳定等诸多问题,对于 网络状况好的人 还好说,最多也就是下载慢点但能安装成功,可对于 网络状况不好的人 来说就是个噩耗,有时候为了安装一个包,失败重试安装好几次都不一定成功

有没有什么方法可以解决这个问题呢?
当然有,也很简单,将下载的地址切换成国内镜像源就行了,那么啥是镜像源呢?

2) 切换国内镜像源

语法如下:
pip install -i <镜像源地址> [包名]

还是拿安装 requests 库为例,使用国内的 清华源 进行下载安装👇🏻

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

2) 改变默认下载地址

如果觉得每次安装包都得指定源地址太麻烦,那么可以将默认地址https://pypi.org 修改成需要的国内镜像地址,一劳永逸

  • Windows系统: 在你所使用的系统用户目录下,即User目录下,创建一个pip文件夹,完整路径为:C:\Users\XXX\pip,再在此文件夹下创建一个 pip.ini 文件,并在此文件下输入以下内容:

    [global]
    index-url = https://pypi.tuna.tsinghua.edu.cn/simple	# 添加默认下载地址,以清华源为例
    [install]
    trusted-host =https://pypi.tuna.tsinghua.edu.cn  		# 此行目的是为了添加信任网址
    
  • Liunx系统:
    先移动到此目录 cd ~/.pip ,如果目录不存在则自己创建一个文件夹 mkdir ~/.pip ,在此目录下创建一个 pip.conf 文件 touch pip.conf,并在此文件下输入以下内容:

    [global]
    index-url = https://pypi.tuna.tsinghua.edu.cn/simple	# 添加默认下载地址,以清华源为例
    [install]
    trusted-host =https://pypi.tuna.tsinghua.edu.cn  		# 此行目的是为了添加信任网址
    

    与 Windows 内容一致

3) 镜像源表

pip国内常用镜像源
名称地址
阿里云https://mirrors.aliyun.com/pypi/simple/
清华大学https://pypi.tuna.tsinghua.edu.cn/simple/
中国科技大学https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban)http://pypi.douban.com/simple/
中国科学技术大学http://pypi.mirrors.ustc.edu.cn/simple/

四、PIP备份与恢复(重点)

在更换Python版本、或者更换电脑时,需要重新使用 pip 包管理工具 来安装需要的库,但对于熟练使用Python的人来说,需要安装的包往往不止一两个,这么多个包通过一条一条指令安装是一件很麻烦是事,且会存在忘记包名是啥 或者 忘记需要打这个包的情况

其实 pip 包管理工具 已经提供了功能去解决这个问题

标题中的备份,并不是指把 包源文件 给直接备份,而是存储其包名和版本号,通过这些信息,再重新安装 Python 包

  • 基本使用

    使用 pip freeze > [路径] 命令,可以生成一个包含包名和版本号的文本文件,其格式为 使用 pip install 期望的格式 如图所示👇🏻
    pip备份与恢复图一

    关于路径,有绝对路径和相对路径两种传入方式

    • 传入相对路径,那么将会以终端当前所在路径下生成文件,如下面的命令,将会在C:\Users\Admin 目录下 生成一个 requirements.txt 文件
      C:\Users\Admin>pip freeze > requirements.txt
      
    • 传入相对路径(推荐),那么将会在绝对路径下生成文件,如下面的命令,将会以此 D:\requirements.txt 路径生成文件
      C:\Users\Admin>pip freeze > D:\requirements.txt
      

    生成这个文本文件后
    可以通过 pip install -r [文件] 命令,把 文本文件 中 每一行的包 都安装一遍,美名其曰 自动化安装

    接着拿 requirements.txt 文件做例子

    • 以相对路径方式导入文件

      D:\pip install -r requirements.txt
      
    • 以绝对路径方式导入文件(推荐)

      D:\pip install -r D:\requirements.txt
      

    pip备份与恢复图二

  • 手动创建文件

    基本使用中的方法固然可以备份并恢复Python的包,但一定要注意的是,因为备份的文本内容每一行的包名是带版本号的,这就意味这有两个问题:

    1. 一定要与备份文件所使用的Python版本一致,包版本更多与Python版本对应
    2. 只能使用指定的版本,而包是不断更新的,意味着不能保证安装的是最新版本


    当然,对于项目和一些要求来说,严格使用对应版本的包和Python这很正常;可如果只是个人使用的话,这就见的不太友善了,那么有没有什么办法可以解决这个问题?先思考一件事,能不能自己手动创建这个文本文件

    答案是可以的,但创建文本文件时一定要选择UTF-8编码,再使用上面 自动化安装 的方法
    在这里插入图片描述
    对比上面的截图少了很多包名,这是因为安装包时会自动安装一堆的依赖,其实自己去安装的包名也就这些

    这里提供此文本文件下载地址:requirements.txt

以 requirements.txt 文件名命名,是一个规范,也是一种程序员之间约定俗成的规定,此文件存放依赖包的信息


五、PIP 其他指令

先来看看 pip 内置的帮助文档

pip -hpip help 或直接 pip

用法:
  pip <命令> [选项]

命令:
  install 							安装软件包。
  download 		    				下载软件包。
  uninstall 						卸载软件包。
  freeze 							以需求格式输出已安装的软件包。
  list 			    				列出已安装的软件包。
  show			    				显示有关已安装软件包的信息。
  check  	    					验证安装的软件包是否具有兼容的依赖性。
  config 							管理本地和全局配置。
  search 							在PyPI中搜索软件包。
  cache		        				检查和管理pip的滚轮缓存。
  whell								根据您的要求制造whell。
  hash								计算软件包归档文件的哈希值。
  completion        				用于完成命令的帮助程序命令。
  debug								显示对调试有用的信息。
  help								显示命令帮助。

常规选项:
  -h,--help						显示帮助。
  --isolated						在隔离模式下运行pip,忽略环境变量和用户配置。
  -v,--verbose						提供更多输出,选件是添加剂,最多可使用3次。
  -V,--version						显示版本并退出。
  -q,--quiet						减少输出。选件是添加剂,最多可使用3次(对应于警告,错误和严重日志记录级别)。
  --log <path>						附加详细日志的路径。
  --proxy <proxy>					以[user:passwd @] proxy.server:port的形式指定代理。
  --retries <retries>				每个连接应尝试的最大重试次数(默认5次)。
  --timeout <sec>					设置套接字超时(默认15秒)。
  --exists-action <action>			路径已存在时的默认操作:(s)witch,(i)gnore,(w)ipe,(b)ackup,(a)bort。
  --trusted-host <hostname>			将此主机或host:端口对标记为受信任,即使它没有有效的HTTPS或任何HTTPS 
  --cert <path>						备用CA捆绑软件的路径。
  --client-cert <path> 				SSL客户端证书的路径,一个包含私钥和PEM格式的证书的文件。
  --cache-dir <dir>					将缓存数据存储在<dir>中。
 --no-cache-dir						禁用缓存。
  --disable-pip-version-check		不要定期检查PyPI以确定是否有新版本的pip可供下载。 隐含--no-index。 
  --no-color						禁止彩色输出。

六、PIP 帮助文档总结

(一)、pip的书写格式为

pip <命令> [选项]

(二)、pip的常用命令

命令描述
install安装包
uninstall卸载包
download下载包
freeze安装格式输出已安装的包
list列出已安装的包
show显示有关已安装包的信息
hash计算软件包归档文件的哈希值
debug显示对调试有用的信息
help显示命令帮助
  • install 安装软件包

    书写格式: pip install [包名],详情参考 二、PIP 基本使用

    Install 选项书写格式描述
    -U,–upgradepip install -U [包名]将指定的包升级到最新版本
    -t, --target <dir>pip install -t <路径> [包名]将包安装到指定路径中,默认情况下不会替换现有的文件/文件夹
    -i, --index-url <url>pip install -i <地址> [包名]Python包索引的基本URL(默认为https://pypi.org/simple)
    -I, --ignore-installedpip install -I [包名]忽略已安装的软件包,将其覆盖

    使用 pip install -t <路径> [包名] 命令,可以切换国内镜像源下载地址,详情参考 三、PIP 切换国内镜像源(重点)

    使用 pip install -U [包名] 可以将 包 进行升级操作,一般先使用pip list -o 命令列出可以升级的包,如果需要升级的包可以升级,再使用此命令进行升级操作,配合使用

    拿升级 Pillow 为列,pip install -U Pillow
    在这里插入图片描述

    选项之间可以配合使用,如之前提到过的切换镜像源,升级包的时候其实也是使用默认的国外地址进行下载,这时候配合切换镜像源下载能够更快完成升级,pip install -U -i https://pypi.tuna.tsinghua.edu.cn/simple/ Pillow

  • uninstall 卸载软件包

    书写格式: pip uninstall [包名]

    以卸载 openpyxl 为例 ,pip uninstall openpyxl
    在这里插入图片描述
    途中会要求我们输入一个是否确认:y 代表确认删除,n 代表取消删除

    在语句中加个选项,可以免去确认卸载的步骤👇🏻

    pip uninstall -y [包名]

  • freeze 以安装格式输出已安装的包

    语法: 使用 pip freeze 命令,会以安装格式列出输出已安装的包名和版本号
    在这里插入图片描述

  • list 列出已安装的软件包

    使用 pip list 命令,可以直观的 列出安装了什么包👇🏻
    在这里插入图片描述

    list 选项书写格式描述
    -o,–outdatedpip list -o列出不是最新的包
    -u,–uptodatepip list -u列出最新包
    -e, --editablepip list -e列出可编辑项目
    -l, --localpip list -l如果在具有全局访问权限的virtualenv中,请勿列出全局安装的软件包
    –userpip list --user仅输出安装在用户站点中的软件包
    –path <path>pip list --path <path>限制为列出软件包的指定安装路径
    –format <list_format>pip list --format <list_format>在以下列中选择输出格式: columns (default)、 freeze、 or json

    使用 pip list -o 可以列出可更新的包,再通过这些信息,对包进行更新🙌
    在这里插入图片描述

(三)、pip的常用 常规选项

选项描述
-h,–help显示帮助
-v,–verbose提供更多输出,选件是添加剂,最多可使用3次
-V,–version显示版本并退出
–timeout <sec>设置套接字超时(默认15秒)
–no-color禁止彩色输出
  • -h 显示帮助(实用)

    这是一个实用的选项,在不知道如何去使用一个命令时,可以通过此方法,将我们需要使用命令的帮助手册给调用出来
    pip install -h 就能列出使用 安装命令的帮助手册,pip list -h 能列出使用 展示列出 的帮助手册

  • -V,–version 显示版本并退出

    此方法一般用于 检查 pip 是否已正确安装,也可以单纯的只是为了知道其版本
    用于检查 pip 是否正确安装的原因 无非就是看此命令是否可以正确显示结果,基于这个原理,也可以直接使用 pippip list 等命令检查 pip 是否已正确安装

  • –timeout 设置套接字超时
    如果你的网络实在是烂,那么此选项或许可以帮助到你,在安装包的时候常常会由于网络问题,导致超时,这个超时时间默认15秒,那么可以通过手动更改为更长的超时时间,缓解超时的问题

    以安装 pandas 为例,pip install pandas --timeout=30

    当然,也可以把超时时间改短,但一般没人会这么去做


补充说明🙄

命令 和 选项 的书写顺序其实在一些命令中,没有严苛要求

  • 显示安装帮助手册:pip install -hpip -h install 一致
  • 设置安装超时时间,pip install pandas --timeout=30pip --timeout=30 install pandas 一致

参考资料


相关博客😏

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值