pipx和conda

pipx

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

安装pipx

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

bash 复制代码
python3 -m pip install --user pipx
python3 -m pipx ensurepath

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

bash 复制代码
brew install pipx
pipx ensurepath

使用pipx安装Python应用

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

bash 复制代码
pipx install <应用名>

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

bash 复制代码
pipx install black

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

列出已安装的应用

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

bash 复制代码
pipx list

运行安装的应用

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

bash 复制代码
black <文件或目录>

升级应用

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

bash 复制代码
pipx upgrade <应用名>

例如,升级black

bash 复制代码
pipx upgrade black

卸载应用

要卸载应用,使用:

bash 复制代码
pipx uninstall <应用名>

例如,卸载black

bash 复制代码
pipx uninstall black

升级pipx

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

bash 复制代码
pip install --user --upgrade pipx

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

bash 复制代码
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命令应该已经可以在终端或命令行中使用了。

创建新的环境

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

bash 复制代码
conda create --name myenv python=3.8

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

激活和退出环境

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

bash 复制代码
conda activate myenv

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

bash 复制代码
conda deactivate

安装包

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

bash 复制代码
conda install numpy

查看已安装的包

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

bash 复制代码
conda list

管理环境

  • 列出所有环境

    bash 复制代码
    conda env list
  • 删除环境

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

    bash 复制代码
    conda env remove --name myenv

更新Conda

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

bash 复制代码
conda update conda

更新所有包:

bash 复制代码
conda update --all

导出和导入环境

  • 导出环境

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

    bash 复制代码
    conda env export > environment.yml
  • 创建环境从environment.yml

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

    bash 复制代码
    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以外的包。选择哪一个工具取决于你的具体需求和使用场景。

相关推荐
Teleger1 天前
使用python来保存键盘输入情况,可保存到sqlite3数据库
python·conda
MonkeyKing_sunyuhua1 天前
Ubuntu 中无法直接使用 `conda` 命令,设置conda的环境变量
linux·ubuntu·conda
哆啦叮当2 天前
Linux下root用户共享conda环境给其他用户
linux·运维·服务器·python·conda
985小水博一枚呀3 天前
【深度学习|PyTorch】基于 PyTorch 搭建 U-Net 深度学习语义分割模型——附代码及其解释!
网络·人工智能·pytorch·python·深度学习·conda·numpy
chen_zn954 天前
conda常用指令
conda
AI浩7 天前
Conda和pip 清空缓存
conda·pip
技shu支持7 天前
PyCharm与Anaconda超详细安装配置教程
ide·python·pycharm·conda
SteveMiller9 天前
conda、anaconda、pip、torch、pytorch、tensorflow到底是什么东西?(转载自本人的知乎回答)
pytorch·conda·pip
深蓝海拓9 天前
新电脑安装和配置pytorch、anaconda、CUDA、cuDNN、pycharm的过程记录
人工智能·pytorch·python·pycharm·conda
奔跑草-10 天前
【拥抱AI】使用Conda的一些常见命令
人工智能·大模型·conda·ai编程·metagpt