如何使用 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 greetprint(greet("World")) # 输出:Hello, World!
关键注意事项
- 模块化设计:将代码按功能拆分为独立模块,便于维护和复用。
- 依赖管理:通过
dependencies
字段声明依赖,或使用uv add <package>
自动更新pyproject.toml
。 - 版本控制:每次发布新版本前更新
version
字段,避免冲突。
扩展应用场景
- 云部署:将打包后的代码上传至 Databricks 或 AWS Lambda,直接调用云端计算资源。
- 协作开发:通过 PyPI 发布包(需额外配置),团队成员可直接
pip install
同步代码。
通过本文,你已掌握 Python 包的基础构建和本地安装流程。下一阶段可尝试 将包发布到 PyPI,实现全球范围内的代码共享!