使用uv来创建pypi组件包

114 阅读1分钟

下面是使用 uv 来创建并发布一个 PyPI 组件包的详细教程,包含从项目初始化、编写代码、构建到发布的全流程:


1. 安装 uv

确保系统已安装 uv,可以用 pip 安装:

pip install uv

2. 初始化项目

使用 uv 初始化一个新的 Python 项目(以 hello-world 为例):

uv init hello-world
cd hello-world

这会生成项目基础结构,包括 pyproject.tomlREADME.mdmain.py 等文件。


3. 编写代码

编辑 main.py,写一个简单的 Hello World 函数:

def main():
    print("Hello, World!")

if __name__ == "__main__":
    main()

如果想发布成库,则可以用 uv init --lib hello-world,结构会包含 src/hello_world/__init__.py 代码文件。


4. 配置项目元数据(编辑 pyproject.toml)

打开 pyproject.toml,配置项目基本信息,比如:

[project]
name = "hello-world"
version = "0.1.0"
description = "A simple hello world package"
readme = "README.md"
requires-python = ">=3.11"
dependencies = []

[project.scripts]
hello-world = "hello_world.main:main"

[build-system]
requires = ["uv_build>=0.8.15,<0.9.0"]
build-backend = "uv_build"

以上配置定义包名、版本、Python最低版本、入口脚本及构建系统。


5. 构建包

在项目根目录执行:

uv build

会在 dist/ 目录生成 .whl.tar.gz 文件。


6. 获取 PyPI API 令牌

登录 PyPI,进入账户设置的 API tokens,创建一个新的令牌并保存(会用来做上传认证)。


7. 发布到 PyPI 测试库(TestPyPI)

先发布到测试 PyPI 以验证包:

uv publish --token <your-test-pypi-token> --publish-url https://test.pypi.org/legacy/

8. 测试安装

用 uv 安装测试包,验证项目运行:

uv run --with hello-world --no-project -- python -c "import hello_world"

9. 发布到正式 PyPI

测试通过后,执行正式发布:

uv publish --token <your-pypi-token>

以上就是使用 uv 创建一个简单的 PyPI 包并成功发布的完整流程教程。uv 通过简洁命令操作和自动管理依赖、环境提升开发效率,适合现代 Python 包开发场景。