Python 牛逼的 pip包管理工具

Python 牛逼的 pip包管理工具

文章目录

  • Python 牛逼的 pip包管理工具
    • 一、PIP 介绍
    • 二、PIP 基本使用
      • 1) 直接安装
      • 2) 指定版本安装
    • 三、PIP 切换国内镜像源(重点)
      • 2) 切换国内镜像源
      • 2) 改变默认下载地址
      • 3) 镜像源表
    • 四、PIP备份与恢复(重点)
    • 五、PIP 其他指令
    • 六、PIP 帮助文档总结
      • (一)、pip的书写格式为
      • (二)、pip的常用命令
      • (三)、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 期望的格式 如图所示
    Python 牛逼的 pip包管理工具_第1张图片

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

    • 传入相对路径,那么将会以终端当前所在路径下生成文件,如下面的命令,将会在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
      

    Python 牛逼的 pip包管理工具_第2张图片

  • 手动创建文件

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

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


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

    答案是可以的,但创建文本文件时一定要选择UTF-8编码,再使用上面 自动化安装 的方法
    Python 牛逼的 pip包管理工具_第3张图片
    对比上面的截图少了很多包名,这是因为安装包时会自动安装一堆的依赖,其实自己去安装的包名也就这些

    这里提供此文本文件下载地址: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 						附加详细日志的路径。
  --proxy 					以[user:passwd @] proxy.server:port的形式指定代理。
  --retries 				每个连接应尝试的最大重试次数(默认5次)。
  --timeout 					设置套接字超时(默认15秒)。
  --exists-action 			路径已存在时的默认操作:(s)witch,(i)gnore,(w)ipe,(b)ackup,(a)bort。
  --trusted-host 			将此主机或host:端口对标记为受信任,即使它没有有效的HTTPS或任何HTTPS 
  --cert 						备用CA捆绑软件的路径。
  --client-cert  				SSL客户端证书的路径,一个包含私钥和PEM格式的证书的文件。
  --cache-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,–upgrade pip install -U [包名] 将指定的包升级到最新版本
    -t, --target pip install -t <路径> [包名] 将包安装到指定路径中,默认情况下不会替换现有的文件/文件夹
    -i, --index-url pip install -i <地址> [包名] Python包索引的基本URL(默认为https://pypi.org/simple)
    -I, --ignore-installed pip install -I [包名] 忽略已安装的软件包,将其覆盖

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

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

    拿升级 Pillow 为列,pip install -U Pillow
    Python 牛逼的 pip包管理工具_第4张图片

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

  • uninstall 卸载软件包

    书写格式: pip uninstall [包名]

    以卸载 openpyxl 为例 ,pip uninstall openpyxl
    Python 牛逼的 pip包管理工具_第5张图片
    途中会要求我们输入一个是否确认:y 代表确认删除,n 代表取消删除

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

    pip uninstall -y [包名]

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

    语法: 使用 pip freeze 命令,会以安装格式列出输出已安装的包名和版本号
    Python 牛逼的 pip包管理工具_第6张图片

  • list 列出已安装的软件包

    使用 pip list 命令,可以直观的 列出安装了什么包
    Python 牛逼的 pip包管理工具_第7张图片

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

    使用 pip list -o 可以列出可更新的包,再通过这些信息,对包进行更新
    Python 牛逼的 pip包管理工具_第8张图片

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

选项 描述
-h,–help 显示帮助
-v,–verbose 提供更多输出,选件是添加剂,最多可使用3次
-V,–version 显示版本并退出
–timeout 设置套接字超时(默认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 一致

参考资料

  • PIP:pip 文档手册
  • Python 官方手册:
    • 安装 Python 模块
    • 虚拟环境和包

相关博客

  • Python 以优雅的姿势 操作文件
  • Python 字符串格式化最强详解2.0 『如何输出好看的内容』

你可能感兴趣的:(Python,#,Python,标准库,第三方库,#,Python基础类,python,pip,python包管理)