pipx和conda

pipx

pipx是一个用于安装和运行Python应用的工具,它可以为每个安装的应用创建独立的虚拟环境,从而避免依赖冲突和污染全局环境。以下是一些常见的pipx用法:

安装pipx

首先,确保你已经安装了pipx。如果还没有安装,可以通过以下命令安装(假设你已经安装了Python和pip):

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

对于macOS用户,可以使用Homebrew安装:

brew install pipx
pipx ensurepath

使用pipx安装Python应用

要使用pipx安装Python应用,可以使用以下命令:

pipx install <应用名>

例如,安装black代码格式化工具:

pipx install black

这会在独立的虚拟环境中安装black,并且使其可用于命令行。

列出已安装的应用

要查看通过pipx安装的所有应用及其版本,可以使用:

pipx list

运行安装的应用

安装应用后,你可以直接通过命令行运行它,就像它是全局安装的一样。例如,运行black

black <文件或目录>

升级应用

要升级通过pipx安装的应用,使用:

pipx upgrade <应用名>

例如,升级black

pipx upgrade black

卸载应用

要卸载应用,使用:

pipx uninstall <应用名>

例如,卸载black

pipx uninstall black

升级pipx

pipx本身也可以通过pip进行升级:

pip install --user --upgrade pipx

或者,如果你是通过Homebrew安装的pipx,可以使用:

brew upgrade pipx
  • 使用pipx安装的应用运行在独立的虚拟环境中,这意味着它们的依赖不会影响到系统的其他Python应用。
  • pipx特别适合安装那些你想要在命令行中运行的应用,比如开发工具、脚本等。
  • 如果你遇到路径问题,确保你的PATH环境变量正确地包含了pipx安装的应用路径。运行pipx ensurepath可以帮助设置这个路径。

通过这些基本的pipx命令,你可以更容易地管理和使用Python命令行工具,而不用担心依赖冲突或污染你的系统环境。

pipx ensurepath命令的作用是确保pipx安装的二进制文件所在的目录被添加到你的系统的PATH环境变量中。这样做的目的是让你可以直接从命令行运行那些通过pipx安装的应用,无需指定完整的路径。当你首次安装pipx或在新的终端会话中发现无法直接运行pipx安装的应用时,运行这个命令非常有帮助。

conda

conda是一个开源的包管理器和环境管理器,可以用来安装、运行和升级包和他们的依赖,同时也能够创建、保存、加载和切换环境。使用conda可以非常方便地管理不同项目的不同依赖,并确保这些依赖之间互不干扰。以下是一些基本的conda命令,帮助你开始使用。

conda是Anaconda和Miniconda的一部分,你需要先安装其中之一。

  • Anaconda:包含conda、Python以及众多流行的科学计算、数据科学相关的库和应用。
  • Miniconda:更轻量级的选择,仅包含conda和Python。

安装完毕后,conda命令应该已经可以在终端或命令行中使用了。

创建新的环境

你可以创建一个新的环境来隔离项目依赖,使用以下命令:

conda create --name myenv python=3.8

这个命令会创建一个名为myenv的新环境,并在其中安装Python 3.8。你可以通过修改python=3.8来选择不同的Python版本。

激活和退出环境

创建新环境后,你可以使用以下命令来激活这个环境:

conda activate myenv

当你完成工作并想要退出当前环境时,可以使用:

conda deactivate

安装包

在激活的环境中,你可以使用conda install命令来安装包。例如,安装numpy

conda install numpy

查看已安装的包

要查看当前环境中已安装的包,可以使用:

conda list

管理环境

  • 列出所有环境

    conda env list
    
  • 删除环境

    如果你不再需要某个环境,可以使用以下命令删除它:

    conda env remove --name myenv
    

更新Conda

定期更新conda自身和它管理的包是个好习惯。更新conda

conda update conda

更新所有包:

conda update --all

导出和导入环境

  • 导出环境

    当你想要共享你的环境配置时,可以导出环境到一个文件中:

    conda env export > environment.yml
    
  • 创建环境从environment.yml

    可以使用以下命令从environment.yml文件创建环境:

    conda env create -f environment.yml
    

这些是conda的基本使用命令,足以让你开始使用conda来管理你的Python环境和依赖。随着你逐渐深入,你可能会遇到更复杂的需求,conda的官方文档提供了非常全面的信息和高级用法,值得一读。

pipxconda虚拟环境的区别

pipxconda都是Python生态系统中广泛使用的工具,但它们服务于不同的目的和需求。

  • 目标pipx专注于在隔离的环境中安装和运行Python应用。它为每个安装的应用创建一个独立的虚拟环境,从而避免了依赖冲突。
  • 使用场景:适合安装那些你希望在全局环境中运行的命令行工具或应用,比如blackflake8等开发工具。
  • 依赖管理:每个应用独立管理自己的依赖,不同应用之间的依赖版本可以不同,彼此不会互相干扰。
  • 适用范围:只针对Python应用和库。
conda
  • 目标conda是一个跨平台的包管理器,不仅可以管理Python包,还可以管理非Python包(如库或工具)。它可以创建和管理虚拟环境,其中可以安装不同版本的软件和库。
  • 使用场景:适合科学计算、数据分析、机器学习等领域,这些领域经常需要复杂的依赖管理和跨语言的包支持。
  • 依赖管理conda能够处理更复杂的依赖关系,包括Python和非Python库的依赖。它可以自动解决包之间的依赖问题。
  • 适用范围:既适用于Python应用和库,也适用于非Python包。

总结来说,pipx是专门用于隔离安装和运行Python命令行工具的,非常适合那些需要全局可用但又希望避免依赖冲突的场景。而conda则是一个更为通用的包管理器,特别适合需要复杂依赖管理的科学计算和数据分析项目,可以管理Python以外的包。选择哪一个工具取决于你的具体需求和使用场景。

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

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

相关文章

excel中文本列显示e+17这样的科学计数法如何处理

我的excel中文本列显示e17这样的科学计数法 然后右键&#xff0c;设置单元格格式&#xff0c;为特殊&#xff0c;邮政编码&#xff0c;点确定即可 最后效果如下

全网最强JavaWeb笔记 | 万字长文爆肝JavaWeb开发——day05_SpringBootWeb请求响应

万字长文爆肝黑马程序员2023最新版JavaWeb教程。这套教程打破常规&#xff0c;不再局限于过时的老套JavaWeb技术&#xff0c;而是与时俱进&#xff0c;运用的都是企业中流行的前沿技术。笔者认真跟着这个教程&#xff0c;再一次认真学习一遍JavaWeb教程&#xff0c;温故而知新&…

如何通过ArkTS卡片的Canvas自定义绘制能力实现五子棋游戏卡片

介绍 本示例展示了如何通过ArkTS卡片的Canvas自定义绘制能力实现一个简单的五子棋游戏卡片。 使用Canvas绘制棋盘和黑白棋子的落子。通过卡片支持的点击事件进行交互&#xff0c;让用户在棋盘上进行黑白棋子的对局。通过TS的逻辑代码实现五子棋输赢判定、回退等逻辑计算&…

算法沉淀 —— 动态规划(子序列问题(上))

算法沉淀 —— 动态规划&#xff08;子序列问题&#xff08;上&#xff09;&#xff09; 前言一、最长递增子序列二、摆动序列三、 最长递增子序列的个数四、最长数对链 前言 几乎所有的动态规划问题大致可分为以下5个步骤&#xff0c;后续所有问题分析都将基于此 1.、状态表示…

BigInteger 大整数 比较大小

一、以整数型礼品交易为例子 int userSend Integer.valueOf(id);int amount Integer.valueOf(amountStr);int userAccept Integer.valueOf(userIdAccept);GiftService giftService new GiftService();boolean carry1 giftService.isHavePropertyByUserIdByGiftId(userSend…

代码随想录算法训练营第43天|1049. 最后一块石头的重量 II |494. 目标和 | 474.一和零

代码随想录算法训练营第43天|1049. 最后一块石头的重量 II |494. 目标和 | 474.一和零 (01背包确实难&#xff0c;但是我是通过 https://www.bilibili.com/video/BV1pY4y1J7na/?spm_id_from333.999.list.card_archive.click&vd_sourcebefaa5fdd7527c53ef9f1b7fccaf9b25 再…

Minikube本地搭建单节点Kubernetes集群

1、什么是 Minikube Minikube 是一个开源工具&#xff0c;旨在为开发者提供一种便捷的方式在本地环境中搭建单节点的 Kubernetes 集群。它主要用于开发、测试和学习 Kubernetes 应用程序&#xff0c;无需依赖大型的硬件资源或复杂的多节点集群配置。minikube 使用轻量级虚拟化技…

蓝桥杯每日一题(快速幂、组合计数)

875 快速幂 快速幂就是将a^k看做是a^2^0和a^2^1……相乘。(相邻两个数是平方关系) 巧妙的是这个时候k就是多个2^n的组合&#xff0c;也就是可以二进制表示。 所以就可以用k的二进制某一位是否为1&#xff0c;判断最后的结果是否乘以a^2^n。 错误点&#xff1a;权值不用初始…

穿透 雪崩 击穿

一、redis的三大缓存问题 正常情况下&#xff0c;大部分的访问请求应该是先被redis响应的&#xff0c;在redis那里得不到响应的小部分访问请 求才会去请求MySQL数据库获取数据&#xff0c;这样MySQL数据库的负载压力是非常小的&#xff0c;且可以正常工 作 缓存雪崩/穿透/击…

Linux中的conntrack命令深入解析

在Linux网络管理和监控领域&#xff0c;conntrack命令是一个强大的工具&#xff0c;它提供了对netfilter连接跟踪系统的直接访问&#x1f50d;。这篇文章将深入探讨conntrack的由来、底层原理、参数意义&#xff0c;以及其常见用法&#xff0c;并对返回结果的每个字段进行详细解…

C/C++程序的(编译,链接)翻译与运行

目录 前言&#xff1a; 1.程序环境 2.翻译环境 3.预处理&#xff08;预编译&#xff09; 4.编译 5.汇编 6.链接 7.运行环境 总结&#xff1a; 前言&#xff1a; 本篇来解释c/c程序的翻译环境与运行环境中的过程&#xff0c;不同的编程语言的翻译环境类似&#xff0c;…

Transformers in Vision:A Survey 阅读笔记

ACM上的一篇综述&#xff0c;讨论Transformer在CV上的应用。 摘要&#xff1a; Among their salient benefits,Transformers enable modeling long dependencies between inputsequence elements and support parallel processing of sequence as compared to recurrent networ…

信息传播的AI时代:机器学习赋能新闻出版业的数字化之旅

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向的学习指导…

leetcode90. 子集 II

去重逻辑&#xff1a; 关键是画出递归树&#xff01;当我们即将进入第二个2的递归的时候&#xff0c;发现isVisit数组是100&#xff0c;也就是说这俩重复的数是False&#xff0c;并且这俩在nums值相同&#xff0c;所以写出去重逻辑&#xff01; class Solution { public:vector…

leetcode代码记录(打家劫舍 II

目录 1. 题目&#xff1a;2. 我的代码&#xff1a;小结&#xff1a; 1. 题目&#xff1a; 一个专业的小偷&#xff0c;计划偷窃一个环形街道上沿街的房屋&#xff0c;每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 &#xff0c;这意味着第一个房屋和最后一个房屋是…

【随笔】Git -- 高级命令(上篇)(六)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

【面试八股总结】超文本传输协议HTTP(二)

参考资料 &#xff1a;小林Coding、阿秀、代码随想录 一、HTTP缓存技术 将资源&#xff08;如网页、图像、脚本等&#xff09;的副本存储在客户端或中间代理服务器上&#xff0c;以便将来的请求可以直接从缓存中获取&#xff0c;而不必重新从服务器下载资源。这有助于减少网…

二维码:技术、商业与未来

title: 二维码&#xff1a;技术、商业与未来 date: 2024/4/3 19:12:28 updated: 2024/4/3 19:12:28 tags: 二维码技术商业应用移动支付物联网AR/VR融合智能家居数字化社会 第一章&#xff1a;引言 1. 二维码在数字化时代的重要性和普及程度 在数字化时代&#xff0c;二维码作…

JVM之常用监控工具

JVM之常用监控工具 jps jinfo 获取配置信息 基本语法 jinfo [options] <pid>常用选项 -sysprops&#xff1a;显示JVM进程的系统属性。-flags&#xff1a;显示用于启动JVM的命令行标志和VM选项。-flag <name>&#xff1a;显示指定JVM标志的当前值。-flag [|-]&…

Windows10安装CloudCompare(图文安装)

CloudCompare是一个3D点云&#xff08;和三角网格&#xff09;处理软件。它最初被设计用于在两个密集的3D点云&#xff08;例如用激光扫描仪获取的点云&#xff09;之间或点云和三角形网格之间进行比较。它依赖于专用于此任务的特定八叉树结构。 之后&#xff0c;它已经扩展到一…