当前位置:首页 > 技术文章 > 正文内容

UV 迄今最快、最好的 Python 包管理器

zonemu2个月前 (08-12)技术文章27



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

亮点

  • 一个可以取代 pip、pip-tools、pipx、poetry、pyenv、twine、virtualenv 等工具的单一工具。
  • 比 pip 快 10-100 倍。
  • 提供全面的项目管理功能,并采用通用的锁定文件。
  • 运行脚本,支持内联依赖元数据。
  • 安装和管理 Python 版本。
  • 运行并安装发布为 Python 包的工具。
  • 包含 pip 兼容的接口,可在熟悉 CLI 的同时提升性能。
  • 支持 Cargo 风格的工作区,用于可扩展的项目。
  • 磁盘空间高效,具有全局缓存以进行依赖去重。
  • 可以通过 curl 或 pip 安装,无需 Rust 或 Python。
  • 支持 macOS、Linux 和 Windows。

安装方法

#macOS and Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

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

Python 版本

uv 安装 Python 并允许在版本之间快速切换。

安装多个 Python 版本:

uv python install 3.10 3.11 3.12

根据需要下载 Python 版本:

uv venv --python 3.12.0

uv run --python pypy@3.8 -- python

在当前目录中使用特定的 Python 版本:

uv python pin 3.11

指定默认 Python 版本:

#预览版功能
uv python install 3.11 --default --preview

运行脚本

Python 脚本是用于独立执行的文件,例如,使用 .用 UV 执行脚本可确保无需手动管理即可管理脚本依赖项 环境。python <script>.py

如果您不熟悉 Python 环境:每个 Python 安装都有一个环境 软件包可以安装在其中。通常,建议创建虚拟环境 隔离每个脚本所需的软件包。UV 自动为您管理虚拟环境 并更喜欢对依赖项采用声明性方法。

uv run example.py

创建新项目

您可以使用以下命令创建新的 Python 项目:uv init

uv init hello-world

官网

https://astral.sh/

文档

https://docs.astral.sh/uv

相关文章

Vue3 如何实现父子组件传值?(vue父子组件传值props)

在Vue 3中,要实现父子组件传值效果主要通过props和emit两种机制来实现,下面我们就来详细介绍一下这两种机制。父组件向子组件传值propsprops是Vue组件的一种机制,主要的作用就是实现从...

用IDEA开发如何用Git快速拉取指定分支代码?

1,准备空的文件夹,git init2,关联远程仓库,git remote add origin gitlab地址3,拉取远程分支代码,git pull origin 远程分支名再用IDEA打开项目即...

我常在使用的几个 VIM 插件(我常在使用的几个 vim 插件)

今天给你分享几个我觉得还不错的 VIM 插件,也许能给你带来一点「惊喜感」。vim主题插件 你完全可以让你的编辑器按照你喜欢的样子呈现,在 vimcolors 这个网站中,汇集了很多的主题,你可以进去...

「云原生」Containerd ctr,crictl 和 nerdctl 命令介绍与实战操作

一、概述作为接替Docker运行时的Containerd在早在Kubernetes1.7时就能直接与Kubelet集成使用,只是大部分时候我们因熟悉Docker,在部署集群时采用了默认的dockers...

HTML5最新版本介绍(“html5”)

HTML5是HTML4.01和XHTML1.0之后超文本标记语言的最新版本,由一群自由思想者设计,最终实现了多媒体支持、交互性、更智能的表单和更好的语义标注。 HTML 5不只是 HTML规范的最新...

HTML5+眼球追踪?黑科技颠覆传统手机体验

今天,iH5工具推出一个新的神秘功能——眼动追踪,可以通过摄像头捕捉观众眼球活动!为了给大家具体演示该功能的使用,我做了一个案例,供大家参考。实际效果如下:案例比较简单,就是通过眼动功能获取视觉焦点位...