python uv 包管理介绍

之前在安装一些工具的时候,偶尔会用到uv, 我没有深究其原理和使用方法,只是照搬命令执行,成功装上工具就行。今天,碰到了一个agent ai项目,又推荐uv, 索性就研究一下吧。

简单看了下,uv的野心还挺大的,即包含pip的功能,又包含venv的功能,而且性能更快。

划重点了, 主要功能:

    • 整合了包安装(类似 pip),而且和pip命令十分相似
    • 拟环境管理(类似 venv/conda)
    • 项目构建

补充一个重点:

powershell 下设置环境变量

bash 复制代码
$env:PYTHONPATH = "D:\code\kimi-cli\src"

如果你的项目是pyproject.tomp,那么是没有requirement.txt的,如何安装依赖呢?

bash 复制代码
uv sync

uv sync 是 uv 的核心命令,作用:

  • 读取 pyproject.toml 和 uv.lock(如果存在,优先用锁文件保证依赖版本一致)
  • 安装所有依赖(生产 + 开发,需配置正确)
  • 生成 / 更新 uv.lock 锁文件(首次执行会生成)

安装方式

bash 复制代码
# 通过 curl(Linux/macOS)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 通过 pip(需 Python 3.7+) windows可以使用这种
pip install uv

一、依赖安装和管理

支持从 requirements.txt 或 pyproject.toml 安装依赖,例如:

bash 复制代码
uv pip install requests  # 安装单个包
uv pip install -r requirements.txt  # 从文件安装
uv pip freeze > requirements.txt  # 导出依赖

二、虚拟环境管理

可快速创建、激活虚拟环境,例如:

bash 复制代码
uv venv  # 创建虚拟环境(默认在 .venv 目录)
source .venv/bin/activate  # 激活(Linux/macOS)

三、项目构建

先给一个符合 PEP 621 标准的 pyproject.toml 示例

bash 复制代码
[build-system]
# 指定构建后端(常用 hatchling、setuptools 等,这里用 hatchling 作为现代后端)
requires = ["hatchling>=1.5"]
build-backend = "hatchling.build"

[project]
# 包的基本信息(核心必填项)
name = "myproject"  # 包名(PyPI 上唯一)
version = "0.1.0"  # 版本号(遵循语义化版本)
authors = [
  { name = "John Doe", email = "john@example.com" }  # 作者信息
]
description = "一个基于 PEP 621 标准的示例 Python 包"  # 简短描述
readme = "README.md"  #  README 文件路径
requires-python = ">=3.8"  # 支持的 Python 版本
classifiers = [  # 分类器(用于 PyPI 检索)
  "Programming Language :: Python :: 3",
  "License :: OSI Approved :: MIT License",
  "Operating System :: OS Independent",
]

# 依赖项(可选,分为运行时依赖和开发依赖)
dependencies = [
  "requests>=2.25",  # 运行时必须的依赖
  "pydantic>=2.0",
]

[project.optional-dependencies]
# 开发环境依赖(如测试、文档工具等,安装时需指定:pip install myproject[dev])
dev = [
  "pytest>=7.0",  # 测试工具
  "sphinx>=6.0",  # 文档生成工具
  "black>=23.0",  # 代码格式化工具
]

[project.urls]
# 额外链接(如项目主页、源码仓库等)
Homepage = "https://github.com/example/myproject"
Repository = "https://github.com/example/myproject.git"
Issues = "https://github.com/example/myproject/issues"

使用方式:

  • 安装构建依赖:pip install hatchling
  • 构建包:python -m build(生成 .tar.gz 和 .whl 包)
  • 发布到 PyPI:twine upload dist/*
相关推荐
2601_961146208 小时前
实验室等离子表面处理设备安全整改记录:通风、UV、接地三项
笔记·安全·uv
毒爪的小新8 小时前
最新 Dify 1.14.0+ 内网离线插件打包、部署完整踩坑方案(解决 uv.lock 依赖校验失败)
运维·ai·uv·dify
醇氧1 天前
CentOS7 使用 uv 安装 Python3.11.9 生产部署文档
uv·python3.11
工业涂料百问8 天前
水性、粉末、UV、溶剂型怎么选?一张对照表看清四条涂层路线的边界
uv
AI 编程助手GPT9 天前
GPT 脚本别只发一个文件:用 uv 把依赖和锁一起交付
人工智能·python·gpt·uv·依赖管理
Martina_03219 天前
AI生成3D模型UV岛太碎,重绘贴图全是接缝?用6步重整UV并保留原材质
图像处理·人工智能·3d·自然语言处理·贴图·uv·游戏策划
学Linux的语莫16 天前
uv的使用
python·uv
zhang-ge17 天前
python包和项目管理器uv在ubuntu下的安装与使用
开发语言·python·uv
Martina_032117 天前
AI生成3D模型怎么判断能不能继续编辑?用6步检查Mesh、材质、UV与导出文件
图像处理·人工智能·3d·ai·自然语言处理·uv·游戏策划
饕餮争锋17 天前
python开发工具uv简介
开发语言·python·uv