现代 Python 开发:uv 安装、配置与最佳实践

现代 Python 开发:uv 安装、配置与最佳实践

目录

一、uv 是什么?

uv 是由 Astral 公司开发的 Rust 编写的 Python 工具链,核心优势是极速(比 pip 快 10-100 倍)、功能全面,集成了包安装、虚拟环境管理、依赖解析、项目构建等能力,兼容 pip/pipenv/poetry 的生态。

  1. uv 官方文档(最核心)
    地址:https://docs.astral.sh/uv/
    这是 uv 最权威的使用指南,包含安装、基础用法、进阶功能、API 参考等所有内容,也是排查问题的首选。
  2. uv GitHub 源码仓库
    地址:https://github.com/astral-sh/uv
    可以查看源码、提交 Issue(反馈问题)、提 PR(贡献代码),也能在 Releases 页面下载指定版本的 uv 安装包,查看更新日志。
  3. uv 快速入门教程
    地址: https://docs.astral.sh/uv/getting-started/
    官方专为新手设计的快速上手指南,比完整文档更精简,适合刚接触 uv 时快速掌握核心用法。

二、uv 的安装

1. 通用安装方式(推荐)

适用于 macOS、Linux、Windows(PowerShell),执行以下命令自动下载适配系统的版本:

# macOS/Linuxcurl-LsSf https://astral.sh/uv/install.sh |sh# Windows (PowerShell) powershell -c"irm https://astral.sh/uv/install.ps1 | iex"
2. 包管理器安装(可选)

pip 安装(不推荐,仅应急)

pip install uv 

Cargo (Rust 环境)

cargoinstall uv --locked

Homebrew (macOS/Linux)

brew install uv 
3. 验证安装

安装完成后,重启终端,执行以下命令验证:

uv --version# 输出示例:uv 0.1.37 (a1b2c3d 2026-03-03)

三、uv 核心使用场景

1. 基础包安装/卸载

uv 兼容 pip 的大部分用法,且默认使用虚拟环境(无需手动激活),核心命令如下:

功能uv 命令说明
安装包uv pip install requests极速安装单个包
安装指定版本uv pip install requests==2.31.0安装特定版本
从 requirements.txtuv pip install -r requirements.txt批量安装依赖,速度远快于 pip
升级包uv pip install --upgrade requests升级包到最新版本
卸载包uv pip uninstall requests卸载包
查看已安装包uv pip list列出当前环境的包
导出依赖uv pip freeze > requirements.txt导出已安装包到文件
2. 虚拟环境管理

uv 内置虚拟环境功能,比 venv 更简洁:

# 创建虚拟环境(默认在 .venv 目录) uv venv # 激活虚拟环境# macOS/Linuxsource .venv/bin/activate # Windows (Cmd) .venv\Scripts\activate.bat # Windows (PowerShell) .venv\Scripts\Activate.ps1 # 删除虚拟环境rm-rf .venv # macOS/Linuxrmdir /s .venv # Windows
3. 项目依赖管理(兼容 pyproject.toml)

uv 支持现代 Python 项目的 pyproject.toml 配置,替代 requirements.txt

# 初始化项目(生成 pyproject.toml) uv init my_project cd my_project # 添加依赖(自动写入 pyproject.toml) uv add requests # 生产依赖 uv add--dev pytest # 开发依赖# 安装项目所有依赖(从 pyproject.toml) uv install# 同步依赖(移除未在 pyproject.toml 中声明的包) uv sync
4. 运行 Python 代码/脚本

uv 可直接运行代码,自动使用当前虚拟环境:

# 运行脚本 uv run script.py # 运行临时代码 uv run -c"print('Hello, uv!')"# 运行模块 uv run -m http.server 8000

四、进阶用法

缓存管理uv 有全局缓存,清理缓存命令:

uv cache clean # 清理所有缓存

指定 Python 版本uv 可自动下载指定版本的 Python(需提前安装 pyenvuv 内置的 Python 解析器):

uv python install3.11# 安装 Python 3.11 uv run --python3.11 script.py # 使用 3.11 运行脚本

加速 pip 兼容:如果项目暂时不想切换到 uv 命令,可通过 uv 加速 pip:

uv pip install requests # 等同于 pip install,但更快

总结

  1. uv 是高性能的 Python 包/环境管理工具,安装简单,兼容 pip/venv 生态,核心优势是速度快、功能集成度高。
  2. 核心用法:uv pip install(安装包)、uv venv(虚拟环境)、uv add(管理项目依赖)、uv run(运行代码)。
  3. 推荐在新项目中使用 uv init + pyproject.toml 替代传统的 requirements.txt,提升依赖管理规范性。

Read more

Flutter 三方库 flutter_app_packager 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、自动化、全平台的桌面端安装包打包与工程分发引擎

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 flutter_app_packager 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、自动化、全平台的桌面端安装包打包与工程分发引擎 在鸿蒙(OpenHarmony)系统的桌面端适配(Ohos PC Mode)以及为鸿蒙应用构建配套的 PC 端管理工具(macOS/Windows/Linux 版辅助工具)时,如何通过一套 Dart 代码或命令行指令,即可瞬间将 Flutter 应用转化为原生的 .dmg, .exe 或 .deb 安装包?flutter_app_packager 为开发者提供了一套工业级的、基于 Dart 的自动化打包封装方案。本文将深入实战其在全平台分发工程中的应用。 前言 什么是

By Ne0inhk
Linux匿名管道通信:原理深挖+代码实现,一篇吃透进程间数据流转

Linux匿名管道通信:原理深挖+代码实现,一篇吃透进程间数据流转

🔥个人主页:Cx330🌸 ❄️个人专栏:《C语言》《LeetCode刷题集》《数据结构-初阶》《C++知识分享》 《优选算法指南-必刷经典100题》《Linux操作系统》:从入门到入魔 《Git深度解析》:版本管理实战全解 🌟心向往之行必能至 🎥Cx330🌸的简介: 目录 前言: 一. 进程间通信介绍 1.1 进程间通信目的 1.2 进程间通信的发展与分类 二、先搞懂:什么是管道?匿名管道有何特殊性? 2.1 管道的本质 2.2 管道的核心特性 三、匿名管道的创建 3.1 匿名管道的创建流程 3.2 匿名管道的使用示例 四. 核心深挖:匿名管道的底层原理 4.1 fork

By Ne0inhk
Flutter 组件 php_serializer 适配鸿蒙 HarmonyOS 实战:异构数据兼容,构建跨语言协议解析与历史债务治理架构

Flutter 组件 php_serializer 适配鸿蒙 HarmonyOS 实战:异构数据兼容,构建跨语言协议解析与历史债务治理架构

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 php_serializer 适配鸿蒙 HarmonyOS 实战:异构数据兼容,构建跨语言协议解析与历史债务治理架构 前言 在鸿蒙(OpenHarmony)生态迈向全场景数字化转型的背景下,许多企业级应用在接入鸿蒙终端时,往往需要面对存量的、基于 PHP 构建的重型后端遗产系统。这些系统常通过 PHP 特有的 serialize() 协议输出配置数据或持久化对象。在鸿蒙设备这类强调 AOT 静态强类型与高性能 JSON 解析的环境下,如果应用无法直接解析这种带有历史烙印的非标准序列化格式,由于由于前后端数据协议的断层,极易由于由于“协议无法互通”导致鸿蒙应用无法读取核心业务配置或陷入繁杂的中间件转发泥潭。 我们需要一种能够深度解析 PHP 序列化语法、支持嵌套对象恢复且具备纯 Dart 离线运作能力的协议转换方案。 php_serializer 为 Flutter 开发者引入了“跨时空协议桥接”

By Ne0inhk