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

踩了很多坑,历时一天半终于成功了,哭了 :( 还好最后 :),方可安心地编写带有炫酷界面程序。最后有彩蛋。没事在GitHub上多看Issues,对自己思考问题有帮助。

第零步,什么是Kivy

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

  • 跨平台:Kivy可在LinuxWindowsOS XAndroidiOSRaspberry Pi上运行,可以在所有支持的平台上运行相同的代码。它可以本地使用大多数输入、协议和设备,包括WM_TouchWM_PenMac OS X TrackpadMagic MouseMtdevLinux Kernel HIDTUIO以及多点触控鼠标模拟器
  • 商业友好:根据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
  1. 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
  1. 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文件夹
在这里插入图片描述

第三步,安装

然后进入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

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

第五步,写一个简单的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,运行之就可以得到熟悉的配方
在这里插入图片描述

发布了80 篇原创文章 · 获赞 32 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_40657528/article/details/103577705