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
相关推荐
laoliu199633 分钟前
GGE Lua 详细教程
开发语言·junit·lua
勇闯逆流河35 分钟前
【C++】list及其模拟实现
开发语言·c++
笑小枫1 小时前
Pytorch使用GPU训练全过程,包含安装CUDA、cuDNN、PyTorch
人工智能·pytorch·python
liulilittle1 小时前
游戏加速器核心技术:动态超发
开发语言·网络·c++·网络协议·游戏·加速器·游戏加速
【本人】2 小时前
Django基础(二)———URL与映射
后端·python·django
Humbunklung2 小时前
Rust 模块系统:控制作用域与私有性
开发语言·后端·rust
小堃学编程2 小时前
QT跨平台应用程序开发框架(9)—— 容器类控件
开发语言·qt
mit6.8242 小时前
[AI-video] 数据模型与架构 | LLM集成
开发语言·人工智能·python·微服务
hqxstudying2 小时前
Java行为型模式---策略模式
java·开发语言·建造者模式·适配器模式·策略模式
蓝婷儿2 小时前
Python 数据建模与分析项目实战预备 Day 4 - EDA(探索性数据分析)与可视化
开发语言·python·数据分析