别再 pip install 了!一个绝佳的包管理器:pipx

news/2024/7/22 14:08:19/文章来源:https://blog.csdn.net/pythondh1/article/details/139227698

在Python开发过程中,我们常常需要安装各种各样的工具库。有些库是项目级别的,比如Django或者Flask,而有些库是我们在整个系统中都可能用到的命令行工具,比如black、flake8、httpie等。对于后者,传统的pip安装方式可能会引发一些版本冲突或者环境污染的问题。这时,pipx就成了我们的救星。

什么是pipx?

pipx是一个用于安装和管理Python命令行工具的工具。它的主要优势在于可以将每个工具安装在一个隔离的虚拟环境中,同时又可以全局调用这些工具,既解决了版本冲突的问题,又保持了系统的整洁。

核心概念

  1. 虚拟环境:pipx会为每个安装的工具创建一个独立的虚拟环境。
  2. 全局可用:尽管工具被安装在独立的虚拟环境中,但pipx会创建一个全局可访问的命令链接,使得你可以像平常一样使用这些工具。

原理简述

pipx的工作原理可以简化为以下几个步骤:

  1. 创建一个新的虚拟环境。
  2. 在这个虚拟环境中安装指定的命令行工具。
  3. 将工具的可执行文件链接到全局环境,使其可全局调用。

这样做的好处是,每个工具都在其独立的环境中运行,不会干扰其他工具和项目的依赖。

安装pipx

在开始使用pipx之前,我们需要先安装它。安装pipx非常简单,只需要运行以下命令:

python3 -m pip install --user pipx
python3 -m pipx ensurepath

确保路径已添加到系统PATH后,重新启动终端,你就可以开始使用pipx了。

使用pipx安装工具

下面通过几个案例来展示pipx的使用。

案例一:安装httpie

httpie是一个非常方便的HTTP客户端工具,用于发起HTTP请求。我们可以用pipx轻松安装它:

pipx install httpie

安装完成后,你可以像普通命令行工具一样使用httpie:

http GET https://api.github.com

案例二:安装black

black是一个流行的代码格式化工具。我们同样可以用pipx安装它:

pipx install black

安装完成后,可以直接使用black格式化你的Python代码:

black myscript.py

案例三:安装和管理多个工具

假设我们还需要安装flake8和mypy,使用pipx非常简单:

pipx install flake8
pipx install mypy

要查看已安装的所有工具,可以使用以下命令:

pipx list

案例四:升级和卸载工具

升级某个工具也非常方便:

pipx upgrade httpie

如果不再需要某个工具,可以使用以下命令卸载:

pipx uninstall httpie

高级用法

pipx还有一些高级用法,比如运行未安装的工具,或者安装某个特定版本的工具。

运行未安装的工具

有时候我们只需要临时运行一个工具,而不想安装它。pipx允许我们直接运行未安装的工具:

pipx run cowsay "Hello, pipx!"

安装特定版本的工具

如果需要安装特定版本的工具,可以这样做:

pipx install black==21.9b0

pipx是管理Python命令行工具的强大工具,解决了很多版本冲突和环境污染的问题。

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

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

相关文章

vue3的核心API功能:computed()API使用

常规使用方法: 这样是常规使用方法. 另一种,可写计算属性的使用方法: 这样分别定义computed的get回调函数和set回调函数, 上面例子定义了plusOne.value的值为1, 那么这时候就走了computed的set回调函数,而没有走get回调函数. 当我们打印plusOne.value的值的时候,走的是get的…

基于 Solana 的 Drift Protocol 快速崛起,重新定义去中心化衍生品市场

随着区块链技术的快速发展,加密市场的格局正在悄然改变。投资者对透明度、效率和去中心化的需求愈发强烈,之前完全由中心化交易主导的加密货币交易,开始向链上转移。 根据 Coingecko 的最新数据,CEX 和 DEX 的现货交易量已经达到了…

VBA技术资料MF159:实现某个区域内的数据滚动

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…

python双色球选号程序的实现与解析

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言:双色球选号游戏的魅力 二、程序设计与实现 1. 生成红色球号码 2. 生…

1794 jsp蛋糕店管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 jsp 蛋糕店管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助采用了java设计,系统具有完整的源代码和数据库,系统采用web模式,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&…

【机器学习】Apriori算法在关联规则学习中的应用

探索数据背后的奥秘:Apriori算法在关联规则学习中的魅力 一、关联规则学习的崛起二、Apriori算法的王者之路三、Apriori算法的实际应用 在数字时代的浪潮中,数据正逐渐成为推动社会发展的新引擎。如何从海量数据中挖掘出有价值的信息,成为了各…

【加密与解密(第四版)】第十三章笔记

第十三章 HOOK技术 13.1 Hook概述 IAT HOOK(改地址) BOOL IAT_InstallHook(){BOOL bResult FALSE ;HMODULE hCurExe GetModuleHandle(NULL);PULONG_PTR pt ;ULONG_PTR OrginalAddr;bResult InstallModuleIATHook(hCurExe,"user32.dll",&qu…

最新淘宝死店全自动采集私信筛选脚本,号称日赚500+【采集软件+使用教程】

原理: 利用脚本自动采集长时间未登录店铺,然后脚本自动私信对应的店铺,看看商家是不是不回消息来判断是否是死店,再下单购买死店的产品,超过48小时不发货就可以联系客服获得赔付,一单利润百分之5%-30%&…

Mybatis进阶——动态SQL(1)

目录 一、 <if> 标签 二、<trim> 标签 三、<where> 标签 四、<set> 标签 五、<foreach> 标签 六、<include> 标签 动态SQL 是Mybatis的强大特性之一&#xff0c;能够完成不同条件下的不同SQL拼接&#xff0c;可以参考官方文档&#…

失落的方舟 命运方舟台服怎么下载游戏客户端 游戏账号怎么注册

《失落的方舟》&#xff08;Lost Ark&#xff09;是韩国Smilegate公司精心打造的一款大型多人在线角色扮演游戏&#xff08;MMORPG&#xff09;&#xff0c;以其精美的画面、沉浸式的剧情、类似动作游戏的战斗体验和广阔的开放世界设定&#xff0c;自面世以来便深受全球玩家喜爱…

ELT 同步 MySQL 到 Doris

如何基于 Flink CDC 快速构建 MySQL 到 Doris 的 Streaming ELT 作业&#xff0c;包含整库同步、表结构变更同步和分库分表同步的功能。 本教程的演示都将在 Flink CDC CLI 中进行&#xff0c;无需一行 Java/Scala 代码&#xff0c;也无需安装 IDE。 准备阶段 # 准备一台已经…

调整图片和表格尺寸的命令:resizebox

\resizebox 是 LaTeX 中的一个命令&#xff0c;用于调整插入的内容&#xff08;如图像、表格、文本等&#xff09;的大小。它的语法如下&#xff1a; \resizebox{<width>}{<height>}{<content>}其中&#xff1a; <width> 和 <height> 分别表示…

Kafka原生API使用Java代码-生产者-异步发送消息回调

文章目录 1、异步发送消息&回调1.1、pom.xml1.2、KafkaProducer1.java 1、异步发送消息&回调 回调就是接收kafka的响应 1.1、pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0&q…

Facebook开户 | 如何检查公共主页的状态

想要了解你的Facebook公共主页的状态吗&#xff1f; Facebook公共主页是让广告主与粉丝互动、传播信息的绝佳平台&#xff0c;但是大家知道如何检查并维护自己的主页状态吗&#xff1f;别担心&#xff0c;Facebook提供了一系列简单易用的工具来帮助大家实现这一目标。 *Page Q…

Vue——事件修饰符

文章目录 前言阻止默认事件 prevent阻止事件冒泡 stop 前言 在官方文档中对于事件修饰符有一个很好的说明&#xff0c;本篇文章主要记录验证测试的案例。 官方文档 事件修饰符 阻止默认事件 prevent 在js原生的语言中&#xff0c;可以根据标签本身的事件对象进行阻止默认事件…

【全开源】场馆预定系统源码(ThinkPHP+FastAdmin+UniApp)

一款基于ThinkPHPFastAdminUniApp开发的多场馆场地预定小程序&#xff0c;提供运动场馆运营解决方案&#xff0c;适用于体育馆、羽毛球馆、兵乒球馆、篮球馆、网球馆等场馆。 场馆预定系统源码&#xff1a;打造高效便捷的预定体验 一、引言&#xff1a;数字化预定时代的来临 …

Node性能如何进行监控以及优化?

一、 是什么 Node作为一门服务端语言&#xff0c;性能方面尤为重要&#xff0c;其衡量指标一般有如下&#xff1a; CPU内存I/O网络 CPU 主要分成了两部分&#xff1a; CPU负载&#xff1a;在某个时间段内&#xff0c;占用以及等待CPU的进程总数CPU使用率&#xff1a;CPU时…

PowerPivot-跨表取值

在PowerPivot中&#xff0c;跨表取值通常涉及创建关系和使用DAX&#xff08;数据分析表达式&#xff09;函数。 以下是一些基本步骤和常用的DAX函数&#xff0c;帮助你在PowerPivot中实现跨表取值&#xff1a; 步骤1&#xff1a;创建关系 加载数据&#xff1a;确保你已将需要…

02--大数据Hadoop集群实战

前言&#xff1a; 前面整理了hadoop概念内容&#xff0c;写了一些概念和本地部署和伪分布式两种&#xff0c;比较偏向概念或实验&#xff0c;今天来整理一下在项目中实际使用的一些知识点。 1、基础概念 1.1、完全分布式 Hadoop是一个开源的分布式存储和计算框架&#xff0…

【Linux】centos7编写C语言程序,补充:使用yum安装软件包组

确保已安装gcc编译器 C语言程序&#xff0c;一般使用gcc进行编译&#xff0c;需确保已安装gcc。 若没有&#xff0c;可以使用yum安装gcc&#xff08;版本4.8.5&#xff09;&#xff0c;也可以使用SCL源安装gcc&#xff08;例如&#xff1a;版本9.3&#xff09;。 安装gcc&am…