树莓派4B:1gRAM安装Python GUI库Kivy教程

简介: 树莓派4B:1gRAM安装Python GUI库Kivy教程

第零步,什么是Kivy


来自官方——用于快速开发应用程序的开源Python库,程序可调用创新的用户接口(例如多点触控应用)。


其特点是:


  • 跨平台:Kivy可在Linux,Windows,OS X,Android,iOS和Raspberry Pi上运行,可以在所有支持的平台上运行相同的代码。它可以本地使用大多数输入、协议和设备,包括WM_Touch,WM_Pen,Mac OS X Trackpad和Magic Mouse,Mtdev,Linux Kernel HID,TUIO以及多点触控鼠标模拟器。
  • 商业友好:根据MIT许可证(从1.7.2开始)和LGPL 3,Kivy是100%免费使用。该工具包是专业开发,支持和使用的。可以在商业产品中使用它。该框架是稳定的,并且具有完善的API,以及可帮助您入门的编程指南。
  • GPU加速:图形引擎是基于OpenGL ES 2构建的,使用现代、快速的图形管线。该工具包带有20多个小部件,全部高度可扩展。许多部分基于Cython用C编写,并通过回归测试进行了测试。


第一步,安装依赖


如果引擎是python,将python3替换为python即可


1.安装环境依赖

$ sudo apt update
$ sudo apt install libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev \
   pkg-config libgl1-mesa-dev libgles2-mesa-dev \
   python3-setuptools libgstreamer1.0-dev git-core \
   gstreamer1.0-plugins-{bad,base,good,ugly} \
   gstreamer1.0-{omx,alsa} python3-dev libmtdev-dev \
   xclip xsel libjpeg-dev


2.ffplayer依赖


$ sudo apt install ffmpeg libavcodec-dev libavdevice-dev libavfilter-dev libavformat-dev \
   libavutil-dev libswscale-dev libswresample-dev libpostproc-dev libsdl2-dev libsdl2-2.0-0 \
   libsdl2-mixer-2.0-0 libsdl2-mixer-dev python3-dev


3.PIP依赖


$ pip3 install Cython==0.29.10 pillow
$ pip3 install pygame   基于pygame开发
$ pip3 install pygments docutils
$ pip3 install pytest 用于测试


第二步,下载开发者版本


下载Kivy开发者版本

$ git clone git://github.com/kivy/kivy.git

可以在该目录下找到kivy文件夹

image.png


第三步,安装


然后进入kivy文件夹进行编译


$ cd kivy
$ python setup.py build_ext --inplace -f 

上述命令第二条可以用make指令替换,其含义相同

$ make

安装命令

$ python3 setup.py install


第四步,修改配置(可忽略,有问题再添加)


在编写的文件中添加

import os
#os.environ['KIVY_VIDEO'] = 'ffpyplayer'
#os.environ['KIVY_TEXT'] = 'pil'
os.environ['KIVY_WINDOW'] = 'sdl2'


第四步,测试


项目组基于pytest提供了一组单元测试


$ make test

image.png

最后给一个动图来看一下有多炫酷,此处稍等3s,看了测试甚至想唱一首黑的白的红的黄的紫的绿的蓝的灰的。

1666020193367.jpg


第五步,写一个简单的APP


代码


from kivy.app import App
from kivy.uix.button import Button
class TestApp(App):
    def build(self):
        return Button(text='Hello World')
TestApp().run()

OK,运行之就可以得到熟悉的配方

image.png


相关文章
|
15天前
|
存储 Python
SciPy 教程 之 SciPy 稀疏矩阵 4
SciPy 教程之 SciPy 稀疏矩阵 4:介绍稀疏矩阵的概念、类型及其在科学计算中的应用。SciPy 的 `scipy.sparse` 模块提供了处理稀疏矩阵的工具,重点讲解了 CSC 和 CSR 两种格式,并通过示例演示了如何创建和操作 CSR 矩阵。
40 3
|
4天前
|
Python
SciPy 教程 之 Scipy 显著性检验 3
本教程介绍Scipy显著性检验,包括其基本概念、原理及应用。显著性检验用于判断样本与总体假设间的差异是否显著,是统计学中的重要工具。Scipy通过`scipy.stats`模块提供了相关功能,支持双边检验等方法。
11 1
|
6天前
|
机器学习/深度学习 Python
SciPy 教程 之 SciPy 插值 2
SciPy插值教程:介绍插值概念及其在数值分析中的应用,特别是在处理数据缺失时的插补和平滑数据集。SciPy的`scipy.interpolate`模块提供了强大的插值功能,如一维插值和样条插值。通过`UnivariateSpline()`函数,可以轻松实现单变量插值,示例代码展示了如何对非线性点进行插值计算。
10 3
|
9天前
|
机器学习/深度学习 数据处理 Python
SciPy 教程 之 SciPy 空间数据 4
本教程介绍了SciPy的空间数据处理功能,主要通过scipy.spatial模块实现。内容涵盖空间数据的基本概念、距离矩阵的定义及其在生物信息学中的应用,以及如何计算欧几里得距离。示例代码展示了如何使用SciPy计算两点间的欧几里得距离。
25 5
|
8天前
|
机器学习/深度学习 Python
SciPy 教程 之 SciPy 空间数据 6
本教程介绍了SciPy处理空间数据的方法,包括使用scipy.spatial模块进行点位置判断、最近点计算等内容。还详细讲解了距离矩阵的概念及其应用,如在生物信息学中表示蛋白质结构等。最后,通过实例演示了如何计算两点间的余弦距离。
17 3
|
7天前
|
机器学习/深度学习 数据处理 Python
SciPy 教程 之 SciPy 空间数据 7
本教程介绍了SciPy的空间数据处理功能,涵盖如何使用`scipy.spatial`模块进行点的位置判断、最近点计算等操作。还详细解释了距离矩阵的概念及其在生物信息学中的应用,以及汉明距离的定义和计算方法。示例代码展示了如何计算两个点之间的汉明距离。
14 1
|
11天前
|
Python
SciPy 教程 之 SciPy 图结构 7
《SciPy 教程 之 SciPy 图结构 7》介绍了 SciPy 中处理图结构的方法。图是由节点和边组成的集合,用于表示对象及其之间的关系。scipy.sparse.csgraph 模块提供了多种图处理功能,如 `breadth_first_order()` 方法可按广度优先顺序遍历图。示例代码展示了如何使用该方法从给定的邻接矩阵中获取广度优先遍历的顺序。
22 2
|
12天前
|
算法 Python
SciPy 教程 之 SciPy 图结构 5
SciPy 图结构教程,介绍图的基本概念和SciPy中处理图结构的模块scipy.sparse.csgraph。重点讲解贝尔曼-福特算法,用于求解任意两点间最短路径,支持有向图和负权边。通过示例演示如何使用bellman_ford()方法计算最短路径。
24 3
|
12天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
28 1
|
17天前
|
数据可视化 开发者 Python
Python GUI开发:Tkinter与PyQt的实战应用与对比分析
【10月更文挑战第26天】本文介绍了Python中两种常用的GUI工具包——Tkinter和PyQt。Tkinter内置于Python标准库,适合初学者快速上手,提供基本的GUI组件和方法。PyQt基于Qt库,功能强大且灵活,适用于创建复杂的GUI应用程序。通过实战示例和对比分析,帮助开发者选择合适的工具包以满足项目需求。
62 7