Python 包管理工具-uv

文章目录

简介

UV 是 Rust 编写的 Python 包管理工具,uv官网表示其下载速度相对其他包管理工具最快。其遵循 Apache License, Version 2.0 许可。相对于使用 miniforge,个人更倾向于使用 uv,其管理、使用更方便也确实快捷。

官网显示的亮点功能截图翻译:

官网

https://docs.astral.sh/uv/

安装

linux && Mac 安装

bash 复制代码
$> curl -LsSf https://astral.sh/uv/install.sh | sh

windows 安装

bash 复制代码
$> powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

通过 pip 安装(不推荐)

bash 复制代码
$> pip install uv

不过不太推荐使用 pip 安装方式安装 uv

更新 uv

bash 复制代码
$> uv self update
info: Checking for updates...
success: You're on the latest version of uv (v0.9.28)

卸载 uv

uv 的安装和升级都比较简单,但个人觉得,卸载有点麻烦

bash 复制代码
# 1、先清除缓存
$> uv cache clean
$> rm -r "$(uv python dir)"
$> rm -r "$(uv tool dir)"

# 2、删除 uv、uvx、uvw 执行文件
$> rm $HOME\.local\bin\uv.exe
$> rm $HOME\.local\bin\uvx.exe
$> rm $HOME\.local\bin\uvw.exe

$HOME 为你的用户根目录

帮助命令

bash 复制代码
# 简短的输出
$> uv --help
# 更详细的输出
$> uv help

特定命令的帮助文档

bash 复制代码
# 简短输出
$> uv init --help 
# 详细输出
#(注意不是 uv init help ,此命令是创建 project 的命令,相当于创建了一个 help 项目)
$> uv help init

创建项目

1、初始化项目

bash 复制代码
$> uv init projectName

执行后就会在相应目录初始化一个项目,其目录结构如下:

├── .gitignore

├── .python-version

├── README.md

├── main.py

└── pyproject.toml

在已有文件夹下初始化项目

bash 复制代码
$> cd /目标目录/projectName
$> uv init

此方式也可以在已有代码的目录下初始化,并使用 uv run main.py 自动创建 .venv 环境

2、安装 Python

bash 复制代码
$> uv python install
Installed Python 3.12.12 in 4.07s
 + cpython-3.12.12-windows-x86_64-none

查看可安装的 Python 列表

bash 复制代码
$> uv python list

安装指定版本的 Python

bash 复制代码
$> uv python install 3.14

查找已安装的 Python

bash 复制代码
$> uv python find

3、运行 main.py

bash 复制代码
$> uv run main.py
Using CPython 3.12.12
Creating virtual environment at: .venv
Hello from project1

第一次运行,他还会自动创建 .venv 环境,环境目录创建后,项目的完整路径如下:

.

├── .venv

│ ├── bin

│ ├── lib

│ └── pyvenv.cfg

├── .python-version

├── README.md

├── main.py

├── pyproject.toml

└── uv.lock
注意:.venv 目录请勿加入版本管理。当然 uv 已为我们自动创建好了 .gitignore 文件,并排除了该目录。

uv 管理依赖

我们这里已添加 numpy 依赖为示例展示

添加依赖

bash 复制代码
$> uv add numpy

执行后 uv 会自动管理 pyproject.toml 文件,并添加 numpy 依赖

升级依赖

bash 复制代码
$> uv lock --upgrade-package numpy

移除依赖

bash 复制代码
$> uv remove numpy

查看依赖树

bash 复制代码
$> uv tree

查看项目版本

bash 复制代码
# 完整版本
$> uv version
# 简单版本
$> uv version --short
# 格式化输出
$> uv version --output-format json

项目移植

将别人使用 uv 管理的项目代码、环境移植到本地(企业环境中项目开发)

bash 复制代码
# 使用 sync 同步依赖
$> cd (通过 git 等同步的项目根路径)
$> uv sync
# 激活环境
$> .venv\Scripts\activate

不同的平台激活环境

Linux

bash 复制代码
$> uv sync
$> source .venv/bin/activate

windows

bash 复制代码
$> uv sync
$> .venv\Scripts\activate

项目打包

bash 复制代码
$> uv build

命令执行后,项目打好的包会在项目根路径的 dist 目录下
uv 的常用内容就到此了,其余还有 tools (uvx) 管理等,可直接到官网深入学习,本文到此结束

相关推荐
李昊哲小课3 小时前
Python办公自动化教程 - 第7章 综合实战案例 - 企业销售管理系统
开发语言·python·数据分析·excel·数据可视化·openpyxl
不知名的老吴4 小时前
返回None还是空集合?防御式编程的关键细节
开发语言·python
李昊哲小课4 小时前
Python办公自动化教程 - 第5章 图表创建 - 让数据可视化
python·信息可视化·数据分析·数据可视化·openpyxl
chushiyunen4 小时前
python pygame实现贪食蛇
开发语言·python·pygame
Dream of maid4 小时前
Python-基础2(流程控制)
python
Lenyiin5 小时前
《Python 修炼全景指南:一》从环境搭建到第一个程序
开发语言·python
涛声依旧393166 小时前
Python项目实战:学生信息管理系统
开发语言·python·数据挖掘
kcuwu.6 小时前
Python进阶:生成器与协程,高效并发编程的核心实践
windows·python·php
XiaoQiao6669996 小时前
python 简单题目练手【详解版】【1】
开发语言·python
ZC跨境爬虫6 小时前
极验滑动验证码自动化实战:背景提取、缺口定位与Playwright滑动模拟
前端·爬虫·python·自动化