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) 管理等,可直接到官网深入学习,本文到此结束

相关推荐
2501_941418552 小时前
基于YOLO11-C3k2-ESC的避雷器外部缺陷检测实现
python
流㶡2 小时前
Python爬虫:POST与Selenium
爬虫·python·selenium
爱学习的阿磊2 小时前
持续集成/持续部署(CI/CD) for Python
jvm·数据库·python
Sagittarius_A*2 小时前
形态学与多尺度处理:计算机视觉中图像形状与尺度的基础处理框架【计算机视觉】
图像处理·人工智能·python·opencv·计算机视觉
m0_561359672 小时前
使用PyQt5创建现代化的桌面应用程序
jvm·数据库·python
2301_790300962 小时前
用Python实现自动化的Web测试(Selenium)
jvm·数据库·python
自可乐2 小时前
LangGraph从入门到精通:构建智能Agent的完整指南
人工智能·python·机器学习
m0_561359672 小时前
使用Docker容器化你的Python应用
jvm·数据库·python