Python包管理工具 pip 及其常用命令和参数用法

目录

PIP

主要功能

安装包

升级包

卸载包

列出包

检查依赖

pip的配置和环境

主要用法

1:版本

2:安装 Python 库

3:升级库

4:卸载库

5:搜索库

6:查看已安装库详细信息

7:只下载库而不安装

8:创建requirements文件

9:指定库版本安装

10:检查是否存在安全漏洞

11:创建虚拟环境并激活

12:清理未使用的库或缓存

13:查看 pip 自身的版本信息及更新 pip

14:指定源安装库

15:分发本地构建的库

16:查看库安装路径

17:在安装时跳过测试

18:列出所有全局安装的库

19:在安装时指定额外选项

20:查看依赖树

21:修复损坏的库

22:获取库的源码

23:执行pip的自定义脚本

24:在安装时指定 Python 版本

25:检查依赖冲突

26:创建独立可执行文件

27:管理用户级别的包

28:只升级指定的包而不升级所有包

29:批量卸载多个包

30:冻结当前环境下的所有包及其版本

pip的未来

结论


PIP

Python作为一门流行的编程语言,拥有一个庞大的生态系统,其中包含了数以万计的库和框架,这些库和框架为Python程序员提供了强大的功能支持。在这样的背景下,一个高效、便捷的包管理工具就显得尤为重要。Python的包安装器(pip)就是这样一个工具,它允许用户轻松地安装和管理Python包。

pip是Python的官方包管理工具,其名称源自“Pip Installs Packages”。它最初由Julien Phalip在2008年创建,目的是为了简化Python包的安装过程。随着时间的推移,pip逐渐成为了Python社区的标配工具。

主要功能

安装包

用户可以通过pip安装来自Python包索引(PyPI)的包,或者从其他源安装。

升级包

pip可以升级已安装的包到最新版本。

卸载包

用户可以使用pip来卸载不再需要的包。

列出包

pip可以列出已安装的包及其版本信息。

检查依赖

pip能够检查包之间的依赖关系,并在安装时自动处理这些依赖。

pip的配置和环境

pip默认使用PyPI作为包的来源,但用户也可以配置pip使用其他的源,比如国内的阿里云、豆瓣等镜像源,这在某些情况下可以加快包的下载速度。此外,pip还支持虚拟环境的概念,这允许用户为不同的项目创建独立的Python环境,避免包版本冲突。通过使用venv模块,用户可以轻松创建和管理虚拟环境。

主要用法

Usage:
  pip <command> [options]

Commands:
  install                     Install packages.
  download                    Download packages.
  uninstall                   Uninstall packages.
  freeze                      Output installed packages in requirements format.
  inspect                     Inspect the python environment.
  list                        List installed packages.
  show                        Show information about installed packages.
  check                       Verify installed packages have compatible dependencies.
  config                      Manage local and global configuration.
  search                      Search PyPI for packages.
  cache                       Inspect and manage pip's wheel cache.
  index                       Inspect information available from package indexes.
  wheel                       Build wheels from your requirements.
  hash                        Compute hashes of package archives.
  completion                  A helper command used for command completion.
  debug                       Show information useful for debugging.
  help                        Show help for commands.

General Options:
  -h, --help                  Show help.
  --debug                     Let unhandled exceptions propagate outside the main subroutine, instead of logging them
                              to stderr.
  --isolated                  Run pip in an isolated mode, ignoring environment variables and user configuration.
  --require-virtualenv        Allow pip to only run in a virtual environment; exit with an error otherwise.
  --python <python>           Run pip with the specified Python interpreter.
  -v, --verbose               Give more output. Option is additive, and can be used up to 3 times.
  -V, --version               Show version and exit.
  -q, --quiet                 Give less output. Option is additive, and can be used up to 3 times (corresponding to
                              WARNING, ERROR, and CRITICAL logging levels).
  --log <path>                Path to a verbose appending log.
  --no-input                  Disable prompting for input.
  --keyring-provider <keyring_provider>
                              Enable the credential lookup via the keyring library if user input is allowed. Specify
                              which mechanism to use [disabled, import, subprocess]. (default: disabled)
  --proxy <proxy>             Specify a proxy in the form scheme://[user:passwd@]proxy.server:port.
  --retries <retries>         Maximum number of retries each connection should attempt (default 5 times).
  --timeout <sec>             Set the socket timeout (default 15 seconds).
  --exists-action <action>    Default action when a path already exists: (s)witch, (i)gnore, (w)ipe, (b)ackup,
                              (a)bort.
  --trusted-host <hostname>   Mark this host or host:port pair as trusted, even though it does not have valid or any
                              HTTPS.
  --cert <path>               Path to PEM-encoded CA certificate bundle. If provided, overrides the default. See 'SSL
                              Certificate Verification' in pip documentation for more information.
  --client-cert <path>        Path to SSL client certificate, a single file containing the private key and the
                              certificate in PEM format.
  --cache-dir <dir>           Store the cache data in <dir>.
  --no-cache-dir              Disable the cache.
  --disable-pip-version-check
                              Don't periodically check PyPI to determine whether a new version of pip is available for
                              download. Implied with --no-index.
  --no-color                  Suppress colored output.
  --no-python-version-warning
                              Silence deprecation warnings for upcoming unsupported Pythons.
  --use-feature <feature>     Enable new functionality, that may be backward incompatible.
  --use-deprecated <feature>  Enable deprecated functionality, that will be removed in the future.

1:版本

如果你是Python新手,很可能系统已经自带pip。验证是否已安装,只需在命令行输入:

python -m pip --version

若未安装,可参考官方指引进行安装。

C:\Users>pip --version
pip 24.0 from D:\Program Files\Python\Lib\site-packages\pip (python 3.12)

2:安装 Python 库

pip install 库名

这就是pip最基础也是最常见的用法,它会自动处理库及其依赖关系。

3:升级库

世界日新月异,库也要保持最新状态。要升级已安装的所有库:

pip list --outdated # 查看待升级库
pip upgrade <package_name> # 升级指定库

4:卸载库

不再需要某个库时,我们可以这样卸载:

pip uninstall <package_name>

5:搜索库

在决定安装某个库之前,你可能想先了解下有哪些可用的库能满足你的需求。这时可以使用search命令:

pip search <keyword>

比如查找与机器学习相关的库,你可以输入 pip search machine learning。

6:查看已安装库详细信息

想知道已安装的库具体版本和其他详情?show命令可以帮助你:

pip show <package_name>

7:只下载库而不安装

有时你可能需要离线环境安装包或者备份当前环境的依赖,那么可以使用download命令只下载不安装:

pip download <package_name>

8:创建requirements文件

在项目开发中,为了方便团队成员统一环境,我们可以创建一个包含所有依赖的requirements文件:

pip freeze > requirements.txt

这会列出当前环境中所有已安装库及其版本,并保存到requirements.txt文件中。而要根据这个文件安装所有依赖,只需:pip install -r requirements.txt

9:指定库版本安装

在某些情况下,你可能需要安装特定版本的库,比如安装 requests 库的2.25.1版本:

pip install requests==2.25.1

10:检查是否存在安全漏洞

pip 配合Safety工具可以检查已安装库的安全性:

pip install safety
safety check --full-report

这会扫描所有已安装的库,并报告是否有已知的安全漏洞。

11:创建虚拟环境并激活

为了避免不同项目间依赖冲突,我们通常会在每个项目下创建独立的虚拟环境,然后使用 pip 进行管理:

python -m venv my_project_env # 创建虚拟环境
source my_project_env/bin/activate # Linux/Mac激活环境
my_project_env\Scripts\activate.bat # Windows激活环境

在虚拟环境中,你可以放心使用 pip 安装和管理项目的专属依赖。

12:清理未使用的库或缓存

随着项目迭代,有些不再使用的库可能会被遗忘,这时可以使用autoremove命令来清除:

pip-autoremove <package_name>

同时,你也可以清理 pip 下载缓存以释放磁盘空间:

pip cache purge

13:查看 pip 自身的版本信息及更新 pip

要查看 pip 本身的版本,只需运行:

pip --version

为了确保 pip 始终保持最新,可使用如下命令升级 pip 自身:

python -m pip install --upgrade pip

当然,pip 的功能确实丰富多样,让我们继续探索:

14:指定源安装库

在某些网络环境下,可能需要从国内镜像或者其他自定义源下载和安装库。例如使用阿里云的Python 镜像源:

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

或永久更改 pip 默认源(推荐在配置文件中修改):

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/

15:分发本地构建的库

如果你自己开发了一个 Python 包,并希望在本地测试安装,可以先打包成 whl 或 tar.gz格式,然后通过 pip 进行安装:

# 假设你已经将项目打包为my_package-0.1.0.whl
pip install ./my_package-0.1.0.whl

16:查看库安装路径

如果想知道某个库具体安装在系统哪个位置,可以使用show --files选项:

pip show --files <package_name>

17:在安装时跳过测试

有些库在安装过程中会执行单元测试,若想快速安装可选择跳过这些测试:

pip install --no-deps --ignore-installed --no-cache-dir --disable-pip-version-check --no-compile <package_name>

18:列出所有全局安装的库

获取全局环境下的所有已安装Python库列表:

pip list

19:在安装时指定额外选项

某些库可能在安装时需要额外参数,比如numpy、scipy等科学计算库,你可以直接在pip命令中传递这些选项:

pip install numpy --install-option="--openblas"
这里的--openblas是一个示例,实际选项请根据库文档进行设置。

20:查看依赖树

要了解一个包及其所有依赖关系,可以使用deptree第三方工具:

pip installdeptree
deptree -l <package_name>
这将展示指定包及其所有依赖项之间的层级关系。

21:修复损坏的库

如果某个库在安装或升级过程中出现问题导致无法正常使用,可以尝试修复它:

pip install --force-reinstall <package_name>

22:获取库的源码

如果你对某个库的实现细节感兴趣,可以通过pip下载其源代码:

pip download <package_name> --no-binary :all:
然后在下载目录中找到对应的tar.gz或whl文件解压查看。

23:执行pip的自定义脚本

有些开发者可能会编写自定义的 pip 脚本来自动化一些任务,你可以通过run命令执行:

pip run my_script.py

24:在安装时指定 Python 版本

如果你有多个Python版本并希望为特定版本安装库:

python3.7 -m pip install <package_name>
这里python3.7替换成你想要使用的Python解释器路径。

25:检查依赖冲突

在项目中可能存在不兼容的依赖版本,可以使用pipdeptree第三方工具来检测:

pip install pipdeptree
pipdeptree --packages <package_name>
这将展示指定包及其依赖项之间是否存在版本冲突。

26:创建独立可执行文件

借助pyinstaller等工具,你可以通过pip将Python程序打包成一个独立可执行文件:

pip install pyinstaller
pyinstaller your_script.py

27:管理用户级别的包

默认情况下,pip 会安装全局系统级别的包。若想为当前用户安装不影响系统的包,可以加上--user选项:

pip install --user <package_name>

28:只升级指定的包而不升级所有包

当只需要更新某个特定的库时,可以使用--upgrade选项:

pip install --upgrade <package_name>

29:批量卸载多个包

如果需要一次性卸载多个Python包,可以通过列表形式提供包名:

pip uninstall <package1> <package2> ...

30:冻结当前环境下的所有包及其版本

为了能够复制或记录当前环境中所有已安装包的状态,可以生成一个 requirements 文件:

pip freeze > requirements.txt
这将把所有已安装包及其版本号写入requirements.txt文件中,便于在其他环境下复现相同的软件环境。

pip的未来

随着Python生态的不断发展,pip也在不断进化。例如,pip 20.2版本开始,官方不再支持Python 2.7和Python 3.4,这意味着pip将更加专注于支持Python 3.5及以上版本。

此外,pip社区也在积极开发新的功能,比如更好的依赖解析器,以及更强大的包管理能力,以满足日益增长的Python用户和开发者的需求。

结论

pip作为Python的官方包管理工具,对于Python开发者来说是一个不可或缺的工具。它简化了包的安装、升级和卸载过程,使得Python的生态系统更加易于使用和维护。随着Python的不断发展,pip也将继续进化,以更好地服务于Python社区。

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

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

相关文章

MT6762_联发科MTK6762安卓核心板规格参数

MTK6762核心板是一款集成了蓝牙、fm、wlan和gps模块的高度集成基带平台&#xff0c;为LTE/LTE-A和C2K智能手机应用程序提供支持。该安卓核心板集成了ARM Cortex-A53处理器&#xff0c;工作频率可达2.0GHz&#xff0c;并且还集成了功能强大的多标准视频编解码器。除此之外&#…

OriginBot智能机器人开源套件

详情可参见&#xff1a;OriginBot智能机器人开源套件——支持ROS2/TogetherROS&#xff0c;算力强劲&#xff0c;配套古月居定制课程 (guyuehome.com) OriginBot智能机器人开源套件 最新消息&#xff1a;OriginBot V2.1.0版本正式发布&#xff0c;新增车牌识别&#xff0c;点击…

【Java程序设计】【C00376】基于(JavaWeb)Springboot的社区帮扶对象管理系统(有论文)

【C00376】基于&#xff08;JavaWeb&#xff09;Springboot的社区帮扶对象管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;已经做了六年的毕业设计程序开发&am…

jupyter notebook导出含中文的pdf(LaTex安装和Pandoc、MiKTex安装)

用jupyter notebook导出pdf时&#xff0c;因为报错信息&#xff0c;需要用到Tex nbconvert failed: xelatex not found on PATH, if you have not installed xelatex you may need to do so. Find further instructions at https://nbconvert.readthedocs.io/en/latest/install…

基于SpringBoot和Leaflet的行政区划地图掩膜效果实战

目录 前言 一、掩膜小知识 1、GIS掩膜的实现原理 2、图层掩膜流程 二、使用插件 1、leaflet-mask介绍 2、核心代码解释 三、完整实例实现 1、后台逻辑实现 2、省级行政区划查询实现 3、行政区划定位及掩膜实现 4、成果展示 总结 前言 在之前的博客提过按空间矢量…

Ansys Speos | Light Expert Group探测器组使用技巧

附件下载 联系工作人员获取附件 概述 相机挡板的设计需要在光路的不同位置同步多个照度图&#xff0c;以尽量减少杂散光。2023R2 Speos提供了一种新的探测器&#xff0c;用于高阶杂散光分析&#xff0c;可以同时对多个探测器进行光线追迹。Light Expert工具可以即时过滤3D视…

SQLite数据库成为内存中数据库(三)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLite使用的临时文件&#xff08;二&#xff09; 下一篇&#xff1a;SQLite中的原子提交&#xff08;四) ​​ SQLite数据库通常存储在单个普通磁盘中文件。但是&#xff0c;在某些情况下&#xff0c;数据库可能…

业务服务:xss攻击

文章目录 前言一、使用注解预防1. 添加依赖2. 自定义注解3. 自定义校验逻辑4. 使用 二、使用过滤器1. 添加配置2. 创建配置类3. 创建过滤器4. 创建过滤器类5. 使用 前言 xss攻击时安全领域中非常常见的一种方法&#xff0c;保证我们的系统安全是非常重要的 xss攻击简单来说就…

代码随想录 图论-并查集

代码随想录 (programmercarl.com) 寻找图中是否存在路径这道题中的类可看做并查集的标准类 目录 1971.寻找图中是否存在路径 684.冗余连接 685.冗余连接II 1971.寻找图中是否存在路径 1971. 寻找图中是否存在路径 已解答 简单 相关标签 相关企业 有一个具有 n 个顶…

使用ai智能写作场景之gpt整理资料,如何ai智能写作整理资料

Ai智能写作助手&#xff1a;Ai智能整理资料小助手 Ai智能整理资料小助手可试用3天&#xff01; 通俗的解释一下怎么用ChatGPT来进行资料整理&#xff1a; 搜寻并获取指定数量的特定领域文章&#xff1a; 想像你在和我说话一样&#xff0c;告诉我你想要多少篇关于某个话题的文…

Flask python :logging日志功能使用

logging日志的使用 一、了解flask日志1.1、Loggers记录器1.2、Handlers 处理器1.3、Formatters 格式化器 二、使用日志2.1、官网上的一个简单的示例2.2、基本配置2.3、具体使用示例2.4、运行 三、写在最后 一、了解flask日志 日志是一种非常重要的工具&#xff0c;可以帮助开发…

【双指针】Leetcode 查找总价格为目标值的两个商品

题目解析 LCR 179. 查找总价格为目标值的两个商品 本题很友好&#xff0c;只需要返回任意一个 算法讲解 这道题很显然就是使用对撞双指针&#xff0c;一个从左边&#xff0c;一个从右边&#xff0c;两边进行和target比较来移动 代码编写 class Solution { public:vector<…

谷粒商城——缓存——SpringCache

1. 配置使用 首先需要导入相关的依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency> 随后在配置文件中进行配置&#xff1a; spring:cache:t…

C语言文件操作(详细)

⽬录 一. 为什么使⽤⽂件&#xff1f; 二. 什么是⽂件&#xff1f; 三. ⼆进制⽂件和⽂本⽂件&#xff1f; 四. ⽂件的打开和关闭 五. ⽂件的顺序读写 六. ⽂件的随机读写 七. ⽂件读取结束的判定 八. ⽂件缓冲区 一. 为什么使⽤⽂件&#xff1f; 如果没有⽂件&#…

STM32技术打造:智能考勤打卡系统 | 刷卡式上下班签到自动化解决方案

文章目录 一、简易刷卡式打卡考勤系统&#xff08;一&#xff09;功能简介原理图设计程序设计 哔哩哔哩&#xff1a; https://www.bilibili.com/video/BV1NZ421Y79W/?spm_id_from333.999.0.0&vd_sourcee5082ef80535e952b2a4301746491be0 一、简易刷卡式打卡考勤系统 &…

docker拉取镜像

docker 拉取镜像 命令格式 docker pull 仓库名称[:标签] 从下载过程可以看出&#xff1a; &#xff08;1&#xff09;镜像文件是由若干层组成&#xff0c;即&#xff1a;AUFS联合文件系统。这是实现增量保存与更新的基础 &#xff08;2&#xff09;下载过程会输出各层镜像的信…

界面控件DevExpress WinForms/WPF v23.2 - 电子表格支持表单控件

DevExpress WinForm拥有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建流畅、美观且易于使用的应用程序&#xff0c;无论是Office风格的界面&#xff0c;还是分析处理大批量的业务数据&#xff0c;它都能轻松胜任…

String类(三)

文章目录 string类&#xff08;三&#xff09;string类的模拟实现&#xff1a;1.默认成员变量和函数2.string的长度和下表引用3.字符串拷贝构造4. 赋值拷贝5.字符串比较6.字符串的增添操作7.insert插入操作8.遍历字符 string类&#xff08;三&#xff09; string类的模拟实现&…

Django(二)-搭建第一个应用(1)

一、项目环境和结构 1、项目环境 2、项目结构 二、编写项目 1、创建模型 代码示例: import datetimefrom django.db import models from django.utils import timezone# Create your models here.class Question(models.Model):question_text models.CharField(max_length2…

ES6 基础

文章目录 1. 初识 ES62. let 声明变量3. const 声明常量4. 解构赋值 1. 初识 ES6 ECMAScript6.0(以下简称ES6)是JavaScript语言的下一代标准&#xff0c;已经在2015年6月正式发布了。它的目标&#xff0c;是使得」JavaScript语言可以用来编写复杂的大型应用程序&#xff0c;成为…