如何使用uv构建Python包并本地安装步骤详解

 更新时间:2025年06月06日 10:05:13   作者:梦想画家  
uv是一个由Astral开发的超快Python包安装工具和解析器,使用Rust编写,旨在替代pip、pip-tools和virtualenv,提供更快的性能和更好的依赖管理,这篇文章主要介绍了如何使用uv构建Python包并本地安装的相关资料,需要的朋友可以参考下

前言

本文将逐步指导你创建一个简单的 Python 包,并将其本地安装到机器或云环境中。完成本教程后,你将拥有一个可复用的 Python 库,可直接通过 pip 安装或在项目中导入使用。

步骤详解

Step 0: 选择构建工具 - 使用 uv

  • 推荐理由uv 是类似 poetry 的现代打包工具,默认使用 hatchling 作为构建后端,支持 PEP 517/518 标准。

  • 安装方法:

    # 通过 Homebrew 安装(MacOS)
    brew install uv
    # 或直接通过 PyPI
    pip install uv
    

Step 1: 创建包目录结构

使用 uv 快速初始化项目结构:

uv init --lib my-package

生成后的目录如下:

my_package/
├── src/
│   └── my_package/
│       ├── __init__.py       # 标记为 Python 包
│       └── your_code.py      # 存放核心代码
│       └── py.typed          # 类型标注声明(可选)
├── pyproject.toml          # 项目元数据和依赖配置
├── README.md               # 项目文档
└── .python-version         # 指定 Python 版本

Step 2: 编写包代码

在 src/my_package/your_code.py 中添加功能代码:

# my_package/your_code.py
def greet(name: str) -> str:
    """返回问候语"""
    return f"Hello, {name}!"

Step 3: 配置 pyproject.toml

填写项目元数据和依赖项:

[project]
name = "my-package"
version = "0.1.0"
description = "一个简单的本地 Python 包示例"
readme = "README.md"
authors = [{ name = "Sarah Glasmacher", email = "sarah@example.com" }]
requires-python = ">=3.11"
dependencies = []

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

Step 4: 构建分发包

运行以下命令生成 .whl 或 .tar.gz 文件:

uv build

构建完成后,dist/ 目录下会生成类似以下的文件:

dist/
├── my_package-0.1.0-py3-none-any.whl
└── my_package-0.1.0.tar.gz

Step 5: 本地安装包

方法 1:直接安装构建产物

pip install dist/my_package-0.1.0-py3-none-any.whl

方法 2:以编辑模式安装(实时同步代码)

pip install -e .

Step 6: 测试安装

打开 Python 终端验证:

from my_package.your_code import greet
print(greet("World"))  # 输出:Hello, World!

关键注意事项

  • 模块化设计:将代码按功能拆分为独立模块,便于维护和复用。
  • 依赖管理:通过 dependencies 字段声明依赖,或使用 uv add <package> 自动更新 pyproject.toml
  • 版本控制:每次发布新版本前更新 version 字段,避免冲突。

扩展应用场景

  • 云部署:将打包后的代码上传至 Databricks 或 AWS Lambda,直接调用云端计算资源。
  • 协作开发:通过 PyPI 发布包(需额外配置),团队成员可直接 pip install 同步代码。

通过本文,你已掌握 Python 包的基础构建和本地安装流程。下一阶段可尝试 将包发布到 PyPI,实现全球范围内的代码共享!

总结

到此这篇关于如何使用uv构建Python包并本地安装的文章就介绍到这了,更多相关uv构建Python包并本地安装内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python正则表达式中的'r'用法总结

    Python正则表达式中的'r'用法总结

    正则表达式即使用一个字符串来描述、匹配一系列某个语法规则的字符串,python中r作用是除去''里面转意字符,在pyhton自动化中比较常用的,下面这篇文章主要给大家介绍了关于Python正则表达式中的'r'用法总结的相关资料,需要的朋友可以参考下
    2023-04-04
  • CentOS6.9 Python环境配置(python2.7、pip、virtualenv)

    CentOS6.9 Python环境配置(python2.7、pip、virtualenv)

    这篇文章主要介绍了CentOS6.9 Python环境配置(python2.7、pip、virtualenv)方法,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-05-05
  • Python中移除List重复项的五种方法

    Python中移除List重复项的五种方法

    本文列些处几种去除在Python 列表中(list)可能存在的重复项,这在很多应用程序中都会遇到的需求,本文介绍几种方法,感兴趣的可以了解一下
    2021-05-05
  • Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例

    Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例

    这篇文章主要介绍了Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法,涉及Python collections模块中的Counter类相关使用技巧与操作注意事项,需要的朋友可以参考下
    2018-03-03
  • Python Poetry实现高效依赖管理的新手指南

    Python Poetry实现高效依赖管理的新手指南

    这篇文章主要为大家详细介绍了Python如何使用Poetry实现高效依赖管理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-05-05
  • Python多维/嵌套字典数据无限遍历的实现

    Python多维/嵌套字典数据无限遍历的实现

    下面小编就为大家带来一篇Python多维/嵌套字典数据无限遍历的实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • 利用Pyhton中的requests包进行网页访问测试的方法

    利用Pyhton中的requests包进行网页访问测试的方法

    今天小编就为大家分享一篇利用Pyhton中的requests包进行网页访问测试的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • 基于python 二维数组及画图的实例详解

    基于python 二维数组及画图的实例详解

    下面小编就为大家分享一篇基于python 二维数组及画图的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python pyecharts绘制柱状图

    Python pyecharts绘制柱状图

    这篇文章主要介绍了Python pyecharts绘制柱状图,文章介绍的柱状/条形图,通过柱形的高度/条形的宽度来表现数据的大小,感兴趣的小伙伴一起进入文章学习更详细内容吧
    2021-12-12
  • python状态机transitions库详解

    python状态机transitions库详解

    在用python做一个比较复杂的小项目,需要根据不同的输入,控制摄像头采集执行不同的任务.虽然用流程方式实现了,但阅读起来费劲,还容易出错.所以就用了状态机,需要的朋友可以参考下
    2021-06-06

最新评论