Python 打包与依赖管理工具,通过统一的 pyproject.toml 声明、锁定并安装项目依赖。
pypa/flit
一个简单的工具,用于将纯 Python 包和模块打包并发布到 PyPI,配置很少。
- Star
- 2,262
- Fork
- 173
- 未关闭 Issue
- 125
- 最近提交
- 11天前
这是什么?
Flit 用于将单个可导入的 Python 模块或包打包并上传到 PyPI。它的目标是减少维护者在打包过程中需要做的决定,并帮助避免常见的打包错误。PyPI 上的包名与导入名保持一致,包内的子包和数据文件会自动包含在内。
典型流程是:在模块中写入版本号和一行简介的 docstring,运行 `flit init` 生成 pyproject.toml,再运行 `flit publish` 发布。版本号和描述直接从模块中读取,命令行脚本等其他元数据在 pyproject.toml 中配置。旧版 flit.ini 文件可以通过内置模块转换为 pyproject.toml。
本地开发时,可以使用 `flit install` 将包安装到环境中,并支持符号链接方式,使修改立即生效。
核心功能
- 01将单个模块或包以导入名发布到 PyPI。
- 02从模块中读取版本号和描述,避免重复维护。
- 03通过 `flit init` 生成 pyproject.toml。
- 04自动包含子包和数据文件。
- 05支持本地开发安装,可选择符号链接方式。
适用场景
- 在不编写 setup.py 的情况下将纯 Python 小型库发布到 PyPI。
- 将基于旧版 flit.ini 的项目迁移到 pyproject.toml。
- 开发时以可编辑方式在本地安装包。
快速上手
- 1
使用 pip 安装 flit
python3 -m pip install flit - 2
为模块添加一行文档字符串和 __version__
- 3
在模块目录中运行 flit init 以创建 pyproject.toml
flit init - 4
将包上传到 PyPI
flit publish
使用前须知
- 每次只能打包一个可导入的模块或包。
- Python 2 模块若要使用 Flit 分发,必须在 Python 3 下可无错误导入。
标签
常见问题
- flit 是什么?
- 一个简单的工具,用于将纯 Python 包和模块打包并发布到 PyPI,配置很少。 Flit 用于将单个可导入的 Python 模块或包打包并上传到 PyPI。它的目标是减少维护者在打包过程中需要做的决定,并帮助避免常见的打包错误。PyPI 上的包名与导入名保持一致,包内的子包和数据文件会自动包含在内。
- flit 可以免费使用吗?用的什么许可证?
- flit 以 BSD-3-Clause 许可证开源。用于商业产品前,请先确认许可证条款。
- flit 还在维护吗?
- 活跃维护中。flit 最近一次提交是在 2026年10月27日。
- flit 适合用来做什么?
- 在不编写 setup.py 的情况下将纯 Python 小型库发布到 PyPI。 将基于旧版 flit.ini 的项目迁移到 pyproject.toml。 开发时以可编辑方式在本地安装包。
- flit 怎么安装和运行?
- 使用 pip 安装 flit: python3 -m pip install flit 为模块添加一行文档字符串和 __version__ 在模块目录中运行 flit init 以创建 pyproject.toml: flit init 将包上传到 PyPI: flit publish
- 在哪里获取 flit?
- 源代码和安装说明在 GitHub 上:https://github.com/pypa/flit
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
基于 PEP 621、PEP 517 标准的现代 Python 包与依赖管理工具,支持虚拟环境与锁文件。
Python 官方标准包安装工具,用于从 PyPI 及其他索引安装软件包。
Python 官方打包体系中的构建工具 Setuptools 的官方代码仓库,用于构建和分发 Python 项目。
一个 Python 项目脚手架工具,可快速生成可发布到 PyPI 的规范化包结构,并预置 tox、pytest、Sphinx 等工具。
用于将 Python 源码包和 wheel 包上传到 PyPI 的命令行工具,不依赖具体的构建系统。