当前位置: 首页 > news >正文

【python】uv管理器

uv是一个速度极快的 Python 包和项目管理器,用 Rust 编写。

安装

安装uv之前,确保你的电脑不需要安装了python

在Windows下,可以使用官方的脚本直接安装

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

在Linux下使用如下命令安装

curl -LsSf https://astral.sh/uv/install.sh | sh

安装成功

uv的下载没有进度条,所以卡住了大概率是网络的问题,请自行解决。

后续将使用基于WSL的Ubuntu 22.04.5 LTS以及uv 0.7.9演示,这里说下网络问题。以下方法适用于 Windows 11 22H2 和 WSL 2.0.5 及以上版本:

  1. 在你的“网络优化软件”中启用“局域网连接”,代理模式选择http(默认一般是这个)
  2. 搜索WSL Settings,网络模式改为Mirrored
    网络模式

使用wget google.com验证:
一切没问题
但是ping是ping不过去的,别想了,此外,每次将系统代理关掉都需要重启WSL(否则WSL将无法联网)。而且WSL无法使用Linux的reboot命令,而是需要在主机中执行:

wsl --shutdown

然后重新访问WSL,就重启成功了。

uv python

uv和conda一样,可以对安装的python进行管理。比如我在安装uv之前,电脑上就已经有python了,这时执行uv python list,就会看到我安装的python:
对python进行管理
这样就可以安装某个特定版本的python:

uv python install 3.12

uv与项目

使用如下命令初始化一个名为uv_test的python项目:

uv init uv_test

UV 将创建以下文件:

.
├── .python-version
├── README.md
├── main.py
└── pyproject.toml

使用如下命令运行:

uv run main.py

运行结果
uv运行时会自动创建一个.venv虚拟环境,类似官方的venv
完整的列表如下所示:

.
├── .venv
│   ├── bin
│   ├── lib
│   └── pyvenv.cfg
├── .python-version
├── README.md
├── main.py
├── pyproject.toml
└── uv.lock

pyproject.toml

包含有关项目的元数据:

[project]
name = "uv-test"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.10"
dependencies = []

与官方的管理文件格式一致(我都不知道python还有这玩意。。。),Python从PEP 518开始引入的使用pyproject.toml管理项目元数据的方案,具体可以看python官方的介绍:https://packaging.python.org/en/latest/guides/writing-pyproject-toml/

uv不会读取pip的配置,所以要单独设置镜像地址。可以在配置文件里指明镜像地址。以阿里云源为例子,在上述文件追加如下内容:

[[tool.uv.index]]
url = "https://mirrors.aliyun.com/pypi/simple/"
default = true

requests库为例,使用如下命令安装:

uv add requests

会自动从镜像下载安装:
安装结果
还可以指定版本约束或替代源:

# Specify a version constraint
uv add 'requests==2.31.0'# Add a git dependency
uv add git+https://github.com/psf/requests# 临时从某个镜像安装
uv add --default-index https://pypi.tuna.tsinghua.edu.cn/simple requests

要删除包,可以使用 :uv remove

uv remove requests

.python-version

该文件包含项目的默认 Python 版本。此文件告诉 uv 使用哪个 Python 版本。

.venv

该文件夹包含项目的虚拟环境,即 Python 环境,即 与系统的其余部分隔离。这是 uv 将安装项目依赖项的位置。

uv.lock

uv.lock是一个跨平台的 lockfile,其中包含有关项目的 依赖。与 which 不同,它用于指定 project 中,lockfile 包含项目中安装的确切解析版本 环境。此文件应签入版本控制中,以实现一致且 跨计算机可重复安装。
uv.lock是人类可读的 TOML 文件,但由 uv 管理,不应手动编辑。

使用如下命令构建发行版:

uv build

在这里插入图片描述
默认情况下,将在当前目录中构建项目,并将构建的文件放在子目录dist/

相关文章:

  • 传统液晶瓶颈待破?铁电液晶如何实现显示技术逆袭
  • HomeKit 基本理解
  • 蓝桥杯java2021年十二届国赛大学A组真题答案整理
  • 如何手搓扫雷(待扩展)
  • [SC]SystemC在CPU/GPU验证中的应用(四)
  • JSR 303(即 Bean Validation)是一个通过​​注解在 Java Bean 上定义和执行验证规则​​的规范
  • C++ 的四种强制类型转换:static_cast、dynamic_cast、const_cast 和 reinterpret_cast
  • LXQt修改开始菜单高亮
  • NW969NW978美光闪存颗粒NW980NW984
  • python连接邮箱的协议选择
  • fork函数小解
  • 学习笔记:3个学习AI路上反复看到的概念:RAG,Langchain,Agent
  • 二叉搜索树——红黑树
  • 投稿Cover Letter怎么写
  • 简单cnn
  • Deepin 20.9社区版安装Docker
  • c++第四课(基础c)——布尔变量
  • 深入Java性能调优:原理详解与实战
  • Linux基本指令/下
  • 【判断数字递增】2021-12-19
  • 网站icp和公安备案/优化科技
  • 用wordpress做音乐网站/济南seo网站排名优化工具
  • wordpress建站站长之家/网络营销服务有哪些
  • 做淘宝图的素材搜索网站/优化大师手机版下载
  • 微网站怎么做的好/网站seo排名优化软件
  • 政府网站建设表态发言/网站快速排名的方法