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
相关推荐
绿炮火37 分钟前
【MATLAB】(十)符号运算
开发语言·matlab
俄城杜小帅1 小时前
QML与C++交互的方式
开发语言·c++·交互
山烛1 小时前
OpenCV 图像处理基础操作指南(一)
图像处理·人工智能·python·opencv·计算机视觉
Asu52022 小时前
思途spring学习0807
java·开发语言·spring boot·学习
zhang1062092 小时前
PDF注释的加载和保存的实现
java·开发语言·pdf·pdfbox·批注
xw33734095642 小时前
scikit-learn工具介绍
python·机器学习·scikit-learn
NeoFii2 小时前
Day 34:GPU训练与类的call方法
python·机器学习
VBA63372 小时前
VBA之Word应用第四章第一节:段落集合Paragraphs对象(一)
开发语言
我是不会赢的3 小时前
使用 decimal 包解决 go float 浮点数运算失真
开发语言·后端·golang·浮点数
胤祥矢量商铺3 小时前
菜鸟笔记007 [...c(e), ...d(i)]数组的新用法
c语言·开发语言·javascript·笔记·illustrator插件