UV和Mamba包管理工具
最近看朋友写的文章提到UV,UV这个最开始我是以为是User Visit的缩写,是指用户访问网站的行为,结果后来才知道,Python有一款包管理工具也叫这个名字。还有这个Mamba也是最新才发现的,在dy也是看到过次。最近才了解到Python的一个包管理器也叫这个名字。目前我自己在用的是pip和conda。所以就试试看。
一、UV
1、关于UV
UV是一款极其快的Python包管理工具,是由rust语言开发的。旨在替代传统的 pip
、pip-tools
、virtualenv
等工具。有以下亮点。
- 提供更快的依赖解析和安装速度(比
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