Kivy 教程

Kivy 主页

Kivy 基础知识

Kivy 入门 Kivy 下载安装和环境配置 Kivy 架构 Kivy 文件语法 Kivy 应用程序 Kivy Hello World Kivy 应用生命周期 Kivy 事件 Kivy 属性 Kivy 输入 Kivy 行为

Kivy 按钮

Kivy 按钮 Kivy 按钮事件 Kivy 按钮颜色 Kivy 按钮大小 Kivy 按钮位置 Kivy 圆形按钮 Kivy 禁用按钮 Kivy 图片按钮

Kivy 小部件

Kivy -小部件 Kivy 标签 Kivy 文本输入 Kivy 画布 Kivy 线条 Kivy 复选框 Kivy 下拉列表 Kivy 窗口 Kivy ScrollView Kivy 轮播 Kivy 滑块 Kivy 图像 Kivy 弹出窗口 Kivy 开关 Kivy 旋转器 Kivy 拆分器 Kivy 进度条 Kivy 气泡 Kivy 选项卡式面板 Kivy 散点图 Kivy 手风琴 Kivy 文件选择器 Kivy 颜色选择器 Kivy 代码输入 Kivy 模态视图 Kivy 切换按钮 Kivy 相机 Kivy 树形视图 Kivy reStructuredText Kivy 操作栏 Kivy 视频播放器 Kivy 模板视图 Kivy VKeyboard Kivy 触摸涟漪 Kivy 音频 Kivy 视频 Kivy 拼写 Kivy 效果 Kivy 输入记录器 Kivy OpenGL Kivy 文本 Kivy 文本标记 Kivy 设置

Kivy 布局

Kivy 布局 Kivy 浮动布局 Kivy 网格布局 Kivy 框布局 Kivy 堆栈布局 Kivy 锚点布局 Kivy 相对布局 Kivy 页面布局 Kivy 循环布局 Kivy 布局中的布局

Kivy 高级概念

Kivy 配置对象 Kivy Atlas Kivy 数据加载器 Kivy 缓存管理器 Kivy 控制台 Kivy 动画 Kivy MultiStroke Kivy 时钟 Kivy SVG Kivy UrlRequest Kivy 剪贴板 Kivy 工厂 Kivy 手势 Kivy 语言 Kivy 图形 Kivy 绘图 Kivy 打包 Kivy Garden Kivy 存储 Kivy 矢量 Kivy Utils Kivy Inspector 工具 Kivy 工具 Kivy 日志 Kivy 帧缓冲区

Kivy 应用程序和项目

Kivy 绘图应用程序 Kivy 计算器应用程序 Kivy 秒表应用程序 Kivy 相机处理 Kivy 图像查看器 Kivy 贝塞尔曲线 Kivy 画布应力 Kivy 圆形绘制 Kivy 小部件动画 Kivy 杂项

Kivy - 打包

术语"打包"是指创建应用程序源代码的单个包以及所有依赖项,包括库、数据文件配置文件等。

开发 Kivy 应用程序时,需要各种资源。例如,常见的要求是 sdl2 包或 glew 包。安装 Kivy 时,也会安装这些依赖项。

kivy-deps.glew
kivy-deps.gstreamer
kivy-deps.sdl2

到目前为止,您已经从已安装 Python 运行时的机器运行 Kivy 应用程序。但是,当要将此应用程序移植到另一台未安装 Python 的机器时,您需要构建一个包含程序、Python 运行时以及依赖项的包。

PyInstaller 包可帮助您构建应用程序的可再发行包。用户无需安装 Python、Kivy 或任何其他库即可运行该应用程序。

要构建这样的可发行包,您应该首先使用 PIP 命令在当前 Kivy 环境中安装 PyInstaller。

pip3 install -U pyinstaller

下一步是将一个或多个 Python 源文件(扩展名为 .py)以及其他资源(如图像文件等)收集到一个单独的文件夹中。

对于本练习,我们将为 ImageButton 应用程序构建一个包。此应用程序的文件存储在 imgbtn 文件夹中。

C:\kivyenv\imgbtn 目录
forward.png main.py pause.png play.png
previous.png

创建另一个文件夹 ImangBtnApp,最终将存储可分发包。从文件夹中执行以下命令 −

(kivyenv) C:\kivyenv\ImageBtnApp>pyinstaller -n ImageBtnApp
c:\kivyenv\imgbtn\main.py

Kivy 应用程序有很多依赖项。因此,收集所有这些依赖项可能需要一段时间。最终,ImageButtonApp 文件夹将填充 −

Directory of C:\kivyenv\ImageBtnApp

27-07-2023 21:25    <DIR>           .
27-07-2023 21:07    <DIR>           ..
27-07-2023 21:25    <DIR>           build
27-07-2023 21:28    <DIR>           dist
27-07-2023 21:25                    970 ImageBtnApp.spec

dist 文件夹是可分发文件夹,您将在其中找到 EXE 文件"ImageBtnApp.exe",以及所需的 DLL 库,例如 sdl2 等。

有一个应用程序名称的 spec 文件。我们需要编辑 spec 文件以添加依赖项挂钩,以正确构建 exe。

使用您最喜欢的编辑器打开 spec 文件,并在 spec 的开头添加这些行 −

from kivy_deps import sdl2, glew

向下滚动 spec 文件以找到 COLLECT 部分并为依赖项的每个路径添加一个 Tree 对象。例如 *[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)].

coll = COLLECT(
   exe, Tree('c:\kivyenv\imgbtn\'),
   a.binaries,
   a.zipfiles,
   a.datas,
   *[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
   strip=False,
   upx=True,
   upx_exclude=[],
   name='ImageBtnApp',
)

现在我们使用 − 在 ImageBtnApp 中构建 spec 文件

python -m PyInstaller ImageBtnApp.spec

编译后的包将位于 ImageBtnApp\dist\ImageBtnApp 目录中。

您还可以使用 Pyinstaller 命令行语法的 -onetime 开关将运行时、应用程序代码和依赖项放在单个文件中(而不是可分发包)−

pyinstaller --onefile -n ImageBtnApp

要构建针对 Android 的可分发包,您需要使用 Buildozer 工具。它会下载并设置 pythonfor-android 的所有先决条件,包括 android SDK 和 NDK,然后构建一个可以自动推送到设备的 apk。

导航到您的项目目录并运行 −

buildozer init

这会创建一个 buildozer.spec 文件来控制您的构建配置。使用您的应用名称等编辑文件。您可以设置变量来控制传递给 python-for-android 的大多数或所有参数。最后,插入您的 android 设备并运行 −

buildozer android debug deploy run

在您的设备上构建、推送和自动运行 APK。