Python学习之pip包管理工具的使用
作者:梦想橡皮擦 发布时间:2023-07-24 11:01:57
写文的原因
学习 Python 的过程中,经常会使用 pip 命令去安装第三方模块,但细细琢磨下来,我真的掌握这款工具了吗?
本文为你全面揭示一下 pip 包管理工具的使用!
pip 简介
pip 是 Python 默认集成的包管理工具,而其本质就是 Python 标准库中的一个包,只是比较特殊一些,可以管理其它包,从 Python2.7 开始,Python 安装包中默认装载了 pip
,而且如果使用虚拟环境,即使用 virtualenv
或 pyvenv
,pip 也会默认同步到环境中。
如果安装 Python 环境之后,发现 pip
不存在,也可以选择 get-pip.py
进行重安装。
pip 具备以下优点:
提供了安装,展示等细致功能;
完美支持虚拟环境;
可以通过
requirements.txt
批量管理包;可以处理二进制格式文件,特指
.whl
,顺便推荐以下常用的.whl
包下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/携带回滚功能,安装失败会自动清理相关包。
pip 安装/移除包
直接在命令行输入 pip
,即可唤醒相应说明,其语法格式为 pip <command> <options>
即 pip 关键字 命令 参数
。
使用 pip -V
可以直接查看当前版本。
C:\Users\Admin>pip -V
pip 20.2.3 from c:\users\admin\appdata\local\programs\python\python38\lib\site-packages\pip (python 3.8)
如果希望升级 pip
本身,直接使用 pip install --upgrade pip
即可。
首先要学习的两个命令,也是最常用的命令,如下所示:
pip install xxx
pip uninstall xxx
安装包和移除包,在使用的时候,如果希望出现帮助文档,可以直接输入 pip install
然后回车,提示如下内容:
ERROR: You must give at least one requirement to install (see "pip help install")
WARNING: You are using pip version 20.2.3; however, version 22.2.2 is available.
You should consider upgrading via the 'c:\users\admin\appdata\local\programs\python\python38\python.exe -m pip install --upgrade pip' command.
然后遵循其提示,输入 pip help install
,可以得到命令使用说明,其内容非常多,不过最常用的依旧是 pip install 包名
或者 pip install -r requirements.txt
,二者都是对第三方包进行安装。 安装包的同时,还可以对包版本进行控制,命令如下:
# 最新版本
pip install package
# 指定版本
pip install package==1.0.4
# 最小版本
pip install 'package>=1.0.4'
移除已安装包,使用 pip uninstall 包名
命令,相应的也可以使用 pip uninstall -r requirements.txt
批量移除包。
升级包和查看已安装包
对已安装包进行升级,使用的命令如下所示:
pip install -U 包名
pip install 包名 --upgrade
不过在实战中升级包应用最广泛的是移除包之后,在安装新版本包。
查看已安装包清单,使用 pip list
命令。
使用 pip list -o
命令,可以查看可升级的包,展示如下:
C:\Users\Admin>pip list -o -i https://pypi.tuna.tsinghua.edu.cn/simple
Package Version Latest Type
----------- ------- ------ -----
pycodestyle 2.8.0 2.9.1 wheel
setuptools 49.2.1 63.4.1 wheel
如果希望查看某安装包的详细信息,可以使用 pip show 包名
进行查阅,例如查看 requests
详细信息。
C:\Users\Admin>pip show requests
Name: requests
Version: 2.28.1
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache 2.0
Location: c:\users\admin\appdata\local\programs\python\python38\lib\site-packages
Requires: charset-normalizer, certifi, urllib3, idna
Required-by:
如果想要查看所有安装包的版本信息,可以使用 pip freeze
命令。
C:\Users\Admin>pip freeze
autopep8==1.6.0
certifi==2022.6.15
charset-normalizer==2.1.0
idna==3.3
pycodestyle==2.8.0
requests==2.28.1
toml==0.10.2
urllib3==1.26.11
该命令还可以将模块包及对应的版本号输出到文件中。
pip freeze > requirements.txt
搜索包
原 pip search 包名
已经不能使用了,官方将 PyPI 的 search 功能将被无限期封掉了,所以忽略吧。
来源:https://juejin.cn/post/7128028874788569124


猜你喜欢
- 接下来我们会进入 字符串常用方法的应用阶段,重点学习字符串的内置函数。正式学习之前,我们要先了解一个词 对象 (划重点,不是男女朋友!),只
- 1,js取得IP地址的方法一<script src="http://pv.sohu.com/cityjson?ie=utf-
- 前言:数据库的操作越来越成为整个应用的性能瓶颈了,这点对于 Web 应用尤其明显。关于数据库的性能,这并不只是 DBA 才需要担心的事,而这
- Python np.argmin()和np.argmax()函数按照axis的要求返回最小的数/最大的数的下标numpy.argmin(a,
- 在一般的情况下,使用批量fetch的几率并不是很多,但是Oracle提供了这个功能我们最好能熟悉一下,说不定什么时候会用上它。declare
- 今天有人问我一个问题:如何通过js脚本复制网页上的一个表格?看起来似乎比较有难度,不过还是搞定了,顺便把解决这个问题的过程记录下来,希望能对
- 作者:做梦的人(小姐姐)出处:https://www.cnblogs.com/chongyou/python读取yaml文件使用,有两种方式
- async官方DOC介绍node安装npm install async --save使用var async = require('a
- OpenCV:图片缩放和图像金字塔对图像进行缩放的最简单方法当然是调用resize函数啦!resize函数可以将源图像精确地转化为指定尺寸的
- 前言本文旨在用最通俗的语言讲述最枯燥的基本知识这个话题比较有意思。昨天中午吃完饭间突然有个同事蹦出了一句:“like有索引吗?”,我顺口就说
- 今儿继续做项目,学习了Django的forms生成前端的代码。forms.pyclass SignupForm(forms.Form): &
- 方案概要: 1. 改变文件存储时的文件名 2. 配置索引服务器,并将索引服务器与MS SQL Server关联。 3. 修改SQL语句,将进
- 目录1. 常用的编码2.补充:计算机表示的单位:3.ASCII编码2.GBK和GB2312编码4.Unicode5.UTF-8编码6.编码和
- 对于时间的选择问题,查到的大部分为两种情况:1.存在readonly属性的2.没有readonly属性的可直接赋值send_keys()测试
- 看例子:运行代码框<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transiti
- javascript Date.getUTCDay()方法按照通用时间在指定日期返回星期几。通过getUTCDay返回的值是对应
- 一、实验内容 对于下面这幅图像,编程实现染色体计数,并附简要处理流程说明。二、实验步骤1.中值滤波2.图像二值化3.膨胀图像4.腐
- 在做task中,需要将TXT文本中的某一项注释修改,但是python对txt文本只有写入和读取两种操作。我采用的方法是:1.读取txt文件,
- 前言聚簇索引就是innodb默认创建的基于主键的索引结构,而且表里的数据就是直接放在聚簇索引里,作为叶节点的数据页:基于主键的数据搜索:从聚
- 大家都出书,我也很幸运的有了这本书,不过一本书的好与坏,错与对都是在于一个人的理解,web标准这个东西主要还是大家理解,理解的深