UV和Mamba包管理工具

UV和Mamba包管理工具

​ 最近看朋友写的文章提到UV,UV这个最开始我是以为是User Visit的缩写,是指用户访问网站的行为,结果后来才知道,Python有一款包管理工具也叫这个名字。还有这个Mamba也是最新才发现的,在dy也是看到过次。最近才了解到Python的一个包管理器也叫这个名字。目前我自己在用的是pip和conda。所以就试试看。

一、UV

1、关于UV

UV是一款极其快的Python包管理工具,是由rust语言开发的。旨在替代传统的 pippip-toolsvirtualenv 等工具。有以下亮点。

  • 提供更快的依赖解析和安装速度(比 pip 快 10-100 倍)
  • 提供全面的项目管理,具有通用的锁文件
  • 运行脚本,支持内联依赖元数据
  • 安装和管理Python的版本
  • 包括一个pip兼容接口,可通过熟悉的CLI提高性能。
  • 支持可扩展项目的Cargo风格工作区。
  • 无需Rust或Python即可通过curl或pip安装。

官方网站:https://docs.astral.sh/uv/

github地址:https://github.com/astral-sh/uv

2、UV安装

{% tabs uv_install %}

官方的推荐方式是直接运行安装脚本进行安装

sh 复制代码
curl -LsSf https://astral.sh/uv/install.sh | sh
#如果系统中没有curl命令,可以使用wget
wget -qO- https://astral.sh/uv/install.sh | sh
#需要指定UV的版本可以使用一下命令
curl -LsSf https://astral.sh/uv/0.6.17/install.sh | sh

window 操作系统使用powershell去安装

sh 复制代码
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
#安装指定版本使用如下命令
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/0.6.17/install.ps1 | iex"

尽量使用管理员身份去运行powershell,不然可能导致命令运行失败。

{% endtabs %}

安装完成后输入一下命令来验证是否成功

复制代码
 uv --version

3、UV使用

Python版本

UV安装Python可以在各版本之间切换。可以使用uv的二级子命令去对Python的版本进行管理,有以下相关子命令

shell 复制代码
Commands:
  list       #显示左右可以安装的Python版本
  install    #安装一个Python版本
  find       #搜索一个Python版本
  pin        #指定一个本地Python的版本到uv中
  dir        #显示uv下载的Python版本所在的目录
  uninstall  #卸载一个Python版本

如果需要安装多个Python版本

python 复制代码
uv python install 3.10 3.11

卸载python版本

复制代码
uv python uninstall 3.11

在当前文件夹使用指定 Python 版本:

复制代码
$ uv python pin 3.11
Pinned `.python-version` to `3.11`

uv可以缓存多个python解析的版本

python 复制代码
uv python list
项目管理

直接使用uv init 命令就可以去创建一个基于uv管理的新项目。二级命令如下

shell 复制代码
Options:
  --name <NAME>                    #项目的名字
  --bare                           #仅创建一个配置文件
  --package                        #将要构建的项目设置为Python包
  --no-package                     #不为构建的项目设置为Python包
  --app                            #为项目创建一个应用程序
  --script                         #创建一个脚本
  --description <DESCRIPTION>      #设置一个项目描述
  --no-description                 #不需要项目描述
  --vcs <VCS>                      #为项目初始化一个版本控制系统[possible values: git, none]
  --build-backend <BUILD_BACKEND>  #为项目初始化所选的构建后端[possible values: hatch, flit, pdm, poetry, setuptools, maturin, scikit]
  --no-readme                      #不去创建readme文件
  --author-from <AUTHOR_FROM>      #填写作者信息到配置文件中[possible values: auto, git, none]
  --no-pin-python                  #不为项目创建`.python-version`文件
  --no-workspace                   #避免工作区冲突,会创建独立的工作区

使用init去初始化一个项目

复制代码
uv init hello-world
uv工程默认会生成4个文件:
.python-version:记录当前工程的Python版本。
main.py:主脚本。
pyproject.toml:记录当前uv工程的依赖情况。
README.md:工程的说明文件。

可以在创建工程的时候直接指定python解析的版本

python 复制代码
uv init test -p 3.11

激活虚拟环境

复制代码
.venv\Scripts\activate
库管理

下载第三方的库可以使用

python 复制代码
uv add pandas

移除某个库

python 复制代码
uv remove pandas

查看虚拟环境中的环境依赖树

python 复制代码
uv tree

也可以通过uv pip去下载三方库

python 复制代码
uv pip install pandas

注:通过uv pip安装的库,需要通过uv pip list去查看

复制代码
uv pip list

使用uv pip安装的第三方库是不会记录在pyproject.toml文件中的。

在使用别人的工程项目时可以一键克隆别人的环境

python 复制代码
uv sync

二、Mamba

1、关于Mamba

​ Mamba 是一个用 C++ 重新实现的 Conda 包管理器。它旨在提供比传统 Conda 更快的包管理和依赖解析速度。Mamba 的核心部分使用 C++ 编写,以确保高效性和性能。同时,Mamba 也使用了 Python 和其他一些辅助语言来实现其功能。

官方地址:https://mamba.readthedocs.io/

github地址:https://github.com/mamba-org/mamba

使用了一段时间个人感觉还不错。

2、Mamba安装

​ 因为这些工具基本都在国外的网站上。uv安装也是,挺慢的,所以这里的mamba的安装我们直接使用国内的镜像去安装。mamba官方是提供了安装脚本去安装,这里就不在去使用脚本,直接用国内镜像比较快速。

安装最新的 Mamba,建议通过安装 Miniforge 来实现,因为 Miniforge 默认包含 Mamba。

miniforge的github地址:https://github.com/conda-forge/miniforge。

miniforge下载南京大学镜像:https://mirror.nju.edu.cn/github-release/conda-forge/miniforge/LatestRelease/。下载对应操作系统的安装包即可。

miniforge不仅包括 Mamba,还包括 Python、conda 和其他工具,适合数据科学项目。

如果已有 Anaconda,建议先卸载,以避免渠道冲突。

{% tabs mamba_install %}

这里以window操作系统为例,选择x86的exe文件直接下载安装即可

在安装的时候尽量不要选择C盘,因为后面这个文件目录会越来越大。

安装成功之后,需要把mamba的安装目录的bin文件目录和script目录添加到系统的环境变量中方便后续在命令行直接使用。

1、下载miniforge的Linux安装脚本

复制代码
wget -qO- https://mirror.nju.edu.cn/github-release/conda-forge/miniforge/LatestRelease/Miniforge3-25.3.0-1-Linux-x86_64.sh

或者是直接去镜像站下载Linux版本的安装脚本,如下。

2、给脚本赋予可执行权限

sh 复制代码
chmod +x Miniforge3-25.3.0-1-Linux-x86_64.sh

3、执行安装脚本

复制代码
sh Miniforge3-25.3.0-1-Linux-x86_64.sh

根据提示进行安装即可。

4、验证安装是否成功,运行一下命令,出现mamba的版本信息就安装成功了。

复制代码
mamba info

{% endtabs %}

3、Mamba使用

创建和激活一个虚拟环境。

shell 复制代码
mamba create -n test python=3.9

激活环境

复制代码
mamba activate test

退出当前激活的环境

复制代码
deactivate

安装软件包

复制代码
mamba install 包名

查看当前环境中已经安装的包

复制代码
mamba list

查看环境信息

复制代码
mamba info --envs
相关推荐
databook3 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar5 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户8356290780515 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_5 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机12 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机13 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机13 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机13 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i13 小时前
drf初步梳理
python·django
每日AI新事件13 小时前
python的异步函数
python