Flot是一个简单的工具,可以轻松地从单个仓库构建多个包(wheel和sdist),无需为每个包创建子目录或另一个仓库,只需列出要包含的文件。
项目描述
flot是一个简单的工具,可以轻松地构建Python包(wheel和sdist),无需魔法和猜测。Flot还可以从单个代码树创建一个或多个Python包,只需列出您想要包含的文件。
因为“明确比隐晦好”和“简单比复杂好”
flot 采用了魔法和猜测,让你知道哪些文件包含在 Python 包中:你只需指定一个包含你想要包含或排除在包中的文件路径或 glob 模式列表。不再神秘!可以像列出路径一样轻松地包含数据文件、多个模块或任何文件。
使用 flot,你还可以拥有多个 pyproject.toml 文件,以享受更简单的单体代码库的好处,同时仍然能够轻松地共享和打包多个 PyPi 包,并促进你大型项目子集的重用,而无需某种强加的目录结构。
与 flot 不同,其他 Python 构建工具假设你只能从一个给定的目录或仓库构建单个 Python 包,并且使用很多魔法来查找包含在包中的模块或文件。
此外,尽管 flot 推崇声明式构建,但在需要更多功能时,也可以运行任意 Python 脚本。
请参阅为何使用 Flot?
Flot 是基于 Thomas Kluyver(@takluyver)修改的 Flit(https://github.com/pypa/flit/)开发的。
该项目是在以下讨论中开始的:https://github.com/pypa/flit/discussions/669
安装
pip install flot
使用方法
假设你正在编写一个名为 foobar 的模块 - 要么作为一个单独的文件 foobar.py,要么作为一个目录 - 并且你想分发它。
创建一个 pyproject.toml 文件。它看起来可能像这样
[build-system] requires = ["flot"] build-backend = "flot.buildapi" [project] name = "foobar" version = "1.0.0" description = "foobar frobinator" [tool.flot] includes = ["foobar.py"]
你可以编辑此文件以添加其他元数据,例如 URL 以设置命令行脚本或添加你的依赖项。请参阅 pyproject.toml 文档,网址为 https://github.com/nexB/flot/blob/main/docs/pyproject_toml.rst
运行此命令以在 dist/ 目录中构建你的 wheel
flot
一旦你的包发布到 PyPI(我使用标准的 twine 工具进行此操作),人们就可以使用 pip 或任何其他 Python 打包工具来安装它,就像安装任何其他包一样。
假设你正在编写第二个模块 baz,作为单个文件 baz.py。只需创建第二个文件,例如命名为 baz-pyproject.toml。它可能看起来像这样
[build-system] requires = ["flot"] build-backend = "flot.buildapi" [project] name = "baz" version = "1.0.0" description = "baz frobinator" [tool.flot] includes = ["baz.py"]
运行此命令以在 dist/ 目录中构建第二个 wheel
flot --pyproject baz-pyproject.toml
现在,你已从同一树中构建了第二个 wheel,内容不同。
项目详情
下载文件
下载适用于您的平台文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。