下面是使用 uv 来创建并发布一个 PyPI 组件包的详细教程,包含从项目初始化、编写代码、构建到发布的全流程:
1. 安装 uv
确保系统已安装 uv,可以用 pip 安装:
pip install uv
2. 初始化项目
使用 uv 初始化一个新的 Python 项目(以 hello-world 为例):
uv init hello-world
cd hello-world
这会生成项目基础结构,包括 pyproject.toml、README.md 和 main.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 包开发场景。