详细内容或原文请订阅后点击阅览
我用 uv 替换了 Pip、Virtualenv 和 Poetry:原因如下
uv 为我提供了一种用于包安装、虚拟环境、锁定文件、Python 版本和运行项目命令的快速工具,让我的生活变得更轻松。
来源:KDnuggetsPython 混乱
Python 的打包一直让我感觉有点混乱。对于一个项目,我会使用 pip 全局安装包,因为我忘记创建虚拟环境。另一方面,我会创建一个 venv,忘记激活它,然后意外地再次全局安装软件包。
对于更大的项目,我会切换到 Poetry 进行依赖管理、打包和锁定文件。它是一个强大的工具,但与 pip 相比,对于我正在构建的项目来说,它常常让人感觉缓慢而沉重。
这些工具都不错。它们的流行有充分的理由。pip 是 Python 的默认包安装程序,venv 有助于创建隔离环境,Poetry 为您提供依赖项管理和可重现的锁定文件。
但是在使用 uv 后,我开始问自己一个简单的问题:
当一个工具可以完成大部分工作时,为什么我要使用三种不同的工具?
什么是紫外线?
uv 是一个快速的 Python 包和项目管理器,由 Astral(Ruff 背后的同一团队)构建。
考虑 uv 的最简单方法是:uv 将大部分工作流程集中到一个地方,而不是使用一种工具来安装软件包,另一种工具用于虚拟环境,另一种工具用于锁定文件,另一种工具用于管理 Python 版本。
它可以替代许多常见 Python 工作流程的 pip、pip-tools、pipx、Poetry、pyenv、twine 和 virtualenv 等工具。
它也比传统设置快得多。 uv 的设计速度比 pip 快 10-100 倍(根据 Astral 的基准),支持项目管理、创建锁定文件、管理 Python 版本,并且仍然提供熟悉的 pip 兼容界面。
这听起来像是一个很大的主张,但在日常使用中,主要好处很简单:
uv 使 Python 项目设置更快、更干净、更不烦人。
我的旧 Python 工作流程
在 uv 之前,我的 Python 工作流程通常看起来像这样。
首先,我将创建一个虚拟环境:
python -m venv .venv
源 .venv/bin/activate
在 Windows 上,我将使用以下命令激活它:
.venv\Scripts\Activate.ps1
我的 uv 新工作流程就是这样。
