文档的这一部分解释了Kyy设计背后的基本思想以及为什么要使用它。接着继续讨论架构,并展示如何在短时间内使用这个框架创建惊人的应用程序。
第一章 安装
我们尽量不重蹈覆辙,而是把创新的东西推向市场。因此,我们专注于自己的代码,并在可能的情况下使用预先存在的、高质量的第三方库。
为了支持Kivy提供的完整、丰富的特征集,需要其他几个库。如果你不使用特定的功能(例如视频播放),不需要其他相应的依赖库。
但是Kivy还是需要一种依赖库,那就是Cython。
此外,还需要Python 2 .x(2.7<x<3)或3 .x(3.3 <=x)解释器。如果你想启用
诸如窗口(即打开窗口)、音频/视频播放或拼写校正等特性,附加功能的依赖关系必须可用。对于这些,我们分别推荐SDL2、Gstreamer 1.x 和 PyEnchant。
其他可选库(相互独立)是:
- OpenCV 2.0 用于摄像机输入
- Pillow 用于图片和文本渲染
- PyEnchant 用于拼写校正
但是,不要对这些依赖感到惊慌!
我们不希望你自己安装所有这些东西。相反,我们创造了漂亮的便携式可以直接使用的包,它们已经包含了平台的必要包。我们只想让您知道,默认值还有其他选择,并给您一个Kivy内部使用内容的概述。
1.1 依赖
以下是Kivy需要运行的列出的依赖项,并且在特定版本中有问题,导致影响了我们的核心功能,Kivy要么不编译,要么会抛出异常错误。
1.1.1 Cython
Kivy1.10.1.Dev0 至少需要 Cython版本0.23,并已通过0.27.3测试。往后的版本可能可以工作,但因为它们没有被测试,所以无法保证。目前 0.27,0.27.2版本Cython有已知的问题,不能用于Kivy。
已知问题:
- Kivy依赖的Cython 0.27 版本 声明错误导致 1.10.0的Kivy会发生编译错误。
不支持:
- Kivy依赖的Cython 0.27 ~ 0.27.2版本 不能用于Python 3.4(带有MinGWPy)编译,因为使用了未导出的编译期间的符号。有关更多细节,请参见此问题
1.1.2 稳定版本
最新的稳定版本可以在Kivy官方网站上找到下载下载。请参考特定平台的安装说明。
1.1.2.1 在Window平台安装
从1.91开始,在现有的Python安装中,我们为Kivy 提供二进制wheel及其所有依赖项。
我们也提供了每夜由Kivy 主干构建的版本。具体内容可以查看每夜Wheel版本的安装相关内容。也可以查看从以前Kivy分发包中升级相关文档。如果将Kivy安装到修改过的位置,也可以的查看文档安装Kivy到修改的位置相关文档。
注意:对于Python 版本号 小于 3.5,我们使用MinGW编译器。但是,对于Windows上的Python 3.5 以后的版本,目前只支持MSVC编译器,因为Python关于MinGW的问题4709。一般来说,这和使用预编译的Wheel时,这不会有什么区别。
使用Kivy需要Python。Python的多个版本可以共存,但Kivy需要在你想使用它的每个python版本中安装好Kivy。
安装
安装了Python以后,打开命令行窗口,通过输入python --verison 确保python可以使用。接着做以下操作:
- 确保你有最新的 pip 和 wheel:
python -m pip install --upgrade pip wheel setuptools
- 安装依赖,(跳过 gstreamer (120MB)安装步骤) 如果你不需要的话。查看Kivy的依赖
python -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew
python -m pip install kivy.deps.gstreamer
注意:如果在安装过程中遇到内存错误,请在pip install 后添加一个选项 -no-cache-dir。
对于Python 3.5,我们提供额外的angle,可以用来代替glew,安装:
python -m pip install kivy.deps.angle
- 安装Kivy
python -m pip install kivy
- (可选)安装Kivy案例
python -m pip install kivy_examples
这些示例安装在Python安装的根目录下的share目录中。
这样就是全部的内容了,你可以在python中 import kivy 跑起来已经安装过的基础案例程序。
python share\kivy-examples\demo\showcase\main.py
注意:如果遇到任何权限被拒绝的错误,请尝试以管理员的身份打开命令行提示符,然后再试一次。
什么是wheels、pip 和 wheel 呢?
在python中,可以使用Python的包管理器 Pip 安装一些类似Kivy的包。有些包例如Kivy如果采用源代码安装的方式还需要额外的操作步骤,例如编译。wheels(扩展名是.whl)是一种已经预编译好的发布包,它需要额外的步骤安装。
当在PyPI上托管时,使用PIP安装一个wheels,例如:
Python -m pip install Kiy
当下载好wheels文件,想直接安装的时候,使用方式 python -m pip install wheel_file_name ,例如:
python -m pip install C:\Kivy-1.9.1.dev-cp27-none-win_amd64.whl
每夜wheels安装
警告:警告:在开发过程中使用最新开发版本可能有风险,你可能会遇到问题。如果您遇到任何错误,请向我们反馈。
kivy 的wheels文件 在每次Kivy主分支代码仓库的提交都会进行版本的构建,可以从这里获取。要是他们,而不是采用 python -m pip install kivy,我们反而会采用安装以下内容中的某一个:
- Python 2.7, 32bit
- Python 3.4, 32bit
- Python 3.5, 32bit
- Python 3.6, 32bit
- Python 2.7, 64bit
- Python 3.4, 64bit
- Python 3.5, 64bit
- Python 3.6, 64bit
- 执行上述安装部分的步骤1和2。
- 为你的系统安装正确的wheels文件
- 用Python -m pip wheel_name,其中wheel_name为重命名文件,然后添加DEP到PATH变量。
Kivy的案例已经从它内核程序进行了分离。这些案例程序在一个单独的wheel里面(适用于Python 2.x 和Python 3.x ):
- Kivy examples
Kivy的依赖
我们分别为Kivy及其依赖提供wheels,所以需要的依赖才被安装。依赖项被提供为Kivy.deps的可选子包,例如kivy.deps.sdl2。
当前在Windws平台,我们提供了以下以来包:
- gstream 用于音频和视频的播放
- glew 和/或者 angle (仅限于3.5版本) 用于OpenGL 渲染
- sdl2 用于控制 和/或者 用于 OpenGL
您可以使用KIVY_GL_BACKEND环境变量,通过设置为gl.(默认值)、angle或sdl2来选择这些变量中的哪些用于OpenGL。angle 目前处于实验阶段,只代替Python 3.5上的glw。
gstream 是一个可选的依赖。当只有播放音频和视频的功能需要的时候,它才需要被安装。当然ffpyplayer 也是一种可选的替代方案。
命令行
熟悉你的命令行工具。执行 pip工具或者wheel工具的时候,需要python在你的系统的环境变量中。在windows系统中,命令行工具详细内容可以查看这里内容,快捷启动方式是键盘上Win+R,在弹出的窗口中输入cmd,按下Enter,接着就会出现窗口。另外一个Linux风格的命令Shell是Git for Windows。注意,如果安装了Bash Shell ,系统自带的CMD仍然可以使用的。
尝试用这种方式吧!将Python加入系统路径中,只需要打开命令行程序,使用 cd 的命令切换到Python安装所在文件夹(例如 C:\Python27)《另外如果你只有一个版本的Python话,直接在CMD或者Bash使用这个就好了。
使用开发版本的Kivy
警告:在开发的过程中,使用最近的开发版本的Kivy会有比较大的风险,你可能会遇到一些错误。如果你遇到BUG,请及时反馈。
与其使用wheels包安装kivy,倒不如通过Git 使用kivy源代码编译和安装,这样还有其他一些步骤:
- Python和Python\Script目录必须在系统路径上。每次你重新编译Kiy时,才能正确工作。
- 确认你有最新版本的pip工具和wheels工具:
python -m pip install --upgrade pip wheel setuptools
- 获取编译器。对于低于3.5版本的Python,我们按照如下步骤使用mingwpy:
(a) 新建文件 python\Lib\distutils\distutils.cfg ,然后增加两行的内容
[build]
compiler = mingw32
(b) 安装MinGW:
python -m pip install -i https://pypi.anaconda.org/carlkl/simple mingwpy
对于Python 3.5,我们使用MSVC编译器。对于3.5,Visual Studio 2015是必需的,它是免费的。只要下载并安装它,你就可以很快熟悉了。
VisualStudio非常大,因此你也可以使用较小的VisualC构建工具来代替。
- 这是环境变量。在Window平台:
set USE_SDL2=1
set USE_GSTREAMER=1
在Bash中:
export USE_SDL2=1 export USE_GSTREAMER=1
这些变量在你每次重新编译Kivy的时候需要重新设置。
5.安装其他的依赖(如果不需要视频和音频播放,可以不用安装gstream)
python -m pip install cython docutils pygments pypiwin32 kivy.deps.sdl2 \ kivy.deps.glew kivy.deps.gstreamer kivy.deps.glew_dev kivy.deps.sdl2_dev \ kivy.deps.gstreamer_dev
- 如果您下载或克隆Kivy到另一个位置,不想将它安装到site-packages位置,请阅读下一节。
- 最后,使用pip install 文件名 编译和安装kivy,其中文件名可以是url,例如用于kivy 主分支的https://github.com/kivy/kivy/archive/master.zip,或者kivy的本地副本的完整路径。
编译Kivy
- 从Github上clone克隆代码:
python -m pip install kivy\.
- 如果编译成功没有任何错误,Kivy应该是可以使用的。你可以通过运行一个基本的例子来测试它:
python share\kivy-examples\demo\showcase\main.py
安装Kivy到其他位置
在开发中,Kivy通常安装到其他备用位置,然后安装:
python -m pip install -e location
这允许Kivy在供python使用的同时保持其原始位置,这对于直接使用Git去跟踪Kivy中的更改非常有用。
为了在不同的位置使用Kivy,需要额外的调整。由于这个问题,wheels和PIP将依赖wheel安装到 python\Lib\site-packages\kivy。所以它们需要从这个位置中移到你的Kivy安装的位置。
在安装Kivy依赖项并下载或克隆Kivy到您最喜欢的位置之后,请执行以下操作:
- 移动内容 python\Lib\site-packages\kivy\deps to your-path\kivy\deps 到你的Kivy所在位置
- 移除文件夹 python\Lib\site-packages\kivy
- 从 python\Lib\site-packages 移动 kivy.deps.*.dist-info 目录到Kivy旁边的路径。
现在您可以用以下命令中的其中一个,安全地编译Kivy在其当前位置:
> make
> mingw32-make
> python -m pip install -e .
> python setup.py build_ext --inplace
如果kivy import 失败,可能是因为你没有从site-package中删除所有的 .dist-info 文件夹 或者 kivy or kivy.deps相关信息
让Python随时随地可用
在Python上启动Python文件有两种方法。
双击的方法
如果只安装了一个Python,那么可以将所有*.py 文件与您的python关联(如果还没有),然后通过双击运行它。
- 右键单击要启动的Python应用程序的(.py文件扩展名)。
- 从弹出的菜单中选择,选择打开方式
- 浏览你的硬盘,找到你想要使用的\Python.exe。选择它
- 如果每次双击Python文件时不想重复这个过程,请选择“始终打开……”。
- 完成,打开文件。
Send-To的方法
你可以执行Python文件通过“发送到”菜单启动。
- 浏览到要使用的Python.exe文件。右击它并复制。
- 打开Windows资源管理器(Windows 8中的文件资源管理器),并转到地址“shell:sendTo”。你应该得到特殊的Windows目录
- 粘贴之前复制到的python.exe到该地方
- 重命名python.exe为其他名字。例如:python27-x64
你现在可以通过右键python文件发送到 “python27-x64” 去执行python文件。
要将新wheels安装到以前的Kivy发行版中,除了python文件夹之外,所有文件和文件夹都应该从发行版中删除。然后,这个python文件夹将被视为正常安装的系统python,然后可以继续前文安装中描述的所有步骤。
1.2.2 在Mac OS中进行安装
注意:本指南描述了建立KiVy的多种方法。建议使用自制Homebrew和PIP安装。
使用homebrew和pip
- 使用homebrew安装所需内容:
$ brew install pkg-config sdl2 sdl2_image sdl2_ttf sdl2_mixer gstreamer
- 使用pip安装Cython和Kivy:
$ pip install Cython==0.26.1
$ pip install kivy
安装开发版本,在第2步骤使用以下指令:
$ pip install https://github.com/kivy/kivy/archive/master.zip
使用MacPorts和pip安装
注意:如果你想在你的Kivy App中播放音频,你就必须需要手动安装Gstreamer。最近的port文档可以从以下的获取py-gst-python port。
你可以使用以下步骤安装Kivy:
- 安装 Macports
- 安装和设置Python3.4为默认的python解释器:
$ port install python34 $ port select --set python python34
3.安装和设置pip为默认的包管理器:
$ port install pip-34
$ port select --set pip pip-34
4.使用Macports 安装必要的内容:
$ port install libsdl2 libsdl2_image libsdl2_ttf libsdl2_mixer
5.使用PIP安装Cython和Kivy:
$ pip install Cython==0.26.1
$ pip install kivy
如果安装开发版本,你可以在第二步骤中使用以下指令:
$ pip install https://github.com/kivy/kivy/archive/master.zip
使用Kivy App
注意:Kivy.app在下载的时候不可以使用。对于更多内容,你可以查看这些[内容](https://github.com/kivy/kivy/issues/5211)。
注意:目前这个方法是在OS X 1.7中测试。对于10.7或者10.7 32位的版本。你不需要自己安装Components。我们建议使用Homebrew这个软件。
对于OS X 10.7以及更高版本,我们提供了绑定在虚拟环境中的所有依赖项的包,包括用于Kivy3.app的Python 3的解释器。这些包是用于快速原型开发的,目前是用Buildzoer包装KiVy应用程序的容器。
安装Kivy,你必须:
- 在这个网址中浏览最近版本的Kivy。然后下载 Kivy-osx-python.7z.
- 使用解压软件 Keka解压它
- 拷贝Kivy2.app 或者 Kivy3.app 作为 Kivy.app 到/Application这个位置。然后在终端执行以下命令行:
$ sudo mv Kivy2.app /Applications/Kivy.app
- 创建命名为kivy的链接,以便能够使用kivy venv快速启动应用程序:
$ ln -s /Applications/Kivy.app/Contents/Resources/script /usr/local/bin/kivy
- 所有的案例或者kivy的工具都已经包含在 Kivy.app/Contents/Resources/Kivy 的目录结构
你现在有一个Kivy的脚本可以在命令行中快速启动你的kivy应用程序。你只需要拖拽你的main.py到命令行即可。
安装 模块
OS X上的Kivy SDK使用自己的虚拟环境,当使用Kiy命令运行应用程序时,该虚拟环境被激活。如果你需要安装需要你想要的模块,你可以这样:
$ kivy -m pip install <modulename>
到底模块/文件到底安装在哪个位置呢?
在应用程序内的便携式虚拟环境里面:
Kivy.app/Contents/Resources/venv/
如果你安装一个模块(安装二进制文件,例如 kivy-garden)。这个二进制文件只有在上文提到的虚拟环境中有效。就和你执行以下命令是同样的效果:
kivy -m pip install kivy-garden
garden库只有当你激活这个环境的时候,才会变得有效:
source /Applications/Kivy.app/Contents/Resources/venv/bin/activate garden install mapview deactivate
安装二进制文件
只需要拷贝二进制文件到 ** /Applications/Kivy.app/Contents/Resources/venv/bin/ **位置
包含其他的框架
Kivy.app 发布的时候带有SDL2和Gstreamer。要包含除所提供的以外的框架,请执行以下操作:
git clone http://github.com/tito/osxrelocator export PYTHONPATH=~/path/to/osxrelocator cd /Applications/Kivy.app python -m osxrelocator -r . /Library/Frameworks/<Framework_name>.framework/ \ @executable_path/../Frameworks/<Framework_name>.framework/
不要忘记 替代<framework_name>的内容。工具osxrelocator 改变了框架中库的路径,使它们的路径是相对于.app文件的,使得Framework可以与app一起移植。
*启动任何的Kivy应用程序
你可以通过拖拽应用程序的main文件到Kivy.app
图标,以运行任何的Kivy应用程序。你可以尝试用这种方法去运行Kivy的案例程序。
从命令行启动应用程序
如果你想从命令行启动Kivy程序,在你已经拖拽Kivy.app到应用程序的文件夹厘米厚,双击 Make Symlinks 脚本。可以通过以下步骤测试是否可行:
- 打开命令行,然后输入:
$ kivy
2.然后输入:
import kivy
如果没有任何错误,那表示执行成功。
- 接着执行Kivy程序
$ kivy yourapplication.py
1.2.3 在Linux中安装
针对不同的Linux发行版要使用对应的软件包
.deb / .rpm
Ubuntu / Kubuntu / Xubuntu / Lubuntu (Saucy and above)
- 添加一个你想要的PPAs
稳定构建
$ sudo add-apt-repository ppa:kivy-team/kivy
每日构建
···
$ sudo add-apt-repository ppa:kivy-team/kivy-daily
···
- 使用包管理器更新 包列表
$ sudo apt-get update
3.安装Kivy:
Python2-python-kivy
$ sudo apt-get install python-kivy
Python3-python3-kivy
$ sudo apt-get install python3-kivy
安装案例(可选)
$ sudo apt-get install python-kivyexamples
Debian (Jessie 或者更新的版本)
- 在APT中手动添加一个PPA到列表中
- 通过执行将GPG密钥添加到APT密钥环:
如果是用户:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A863D2D6
如果是Root:
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A863D2D6
- 刷新你的包列表,然后安装python-kivy 和/或者 python3-kivy,以及安装kivy案例(可选)。
Linux Mint
- 了解Ubuntu发布的安装是基于什么,可以使用这个概述。
- 取决于你的安装基于哪个版本,继续以上Ubuntu的安装描述。
Bodhi Linux
- 确认你现在运行的是哪个版本的发行版。使用以下列表中的去找出Ubuntu LTS是基于哪一个。
- Bodhi 1 Ubuntu 10.04 LTS aka Lucid (No packages, just manual install)
- Bodhi 2 Ubuntu 12.04 LTS aka Precise
- Bodhi 3 Ubuntu 14.04 LTS aka Trusty
- Bodhi 4 Ubuntu 16.04 LTS aka Xenial
- 取决于你的安装基于哪个版本,继续以上Ubuntu的安装描述。
OpenSuSE
- 到网址安装kivy。为openSuSe的发行版使用 "1 Click Install"安装。你可能想通过点击显示不稳定版本去查阅最近的Kivy的版本。我们更喜欢通过 "devel:languages:python"去决定如何使用安装包
- 如果想访问kivy这些示例,请在即将安装的向导中选择Python Kivy示例。
Gentoo
- 有一个Kivy的稳定版
emerge Kivy - 有效的USE-FLag是:
cairo: 标准的flag, 可以让kivy使用 cairo图形库
camera: 安装该库,可以让kivy支持摄像机相关内容
doc:标准的flag,可以让你本地构建文档
examples: 标准的flag,可以让你获得kivy案例
garden:安装garden工具,可以管理用户维护的控件
gstreamer:标准的flag,kivy能够支持音频和视频的播放
spell:标准的flag,可以在kivy支持拼写校正
其他
对于其他Linux发行版,我们建议通过PIP进行安装,如下所示。
1.2.4 安装一个虚拟环境
通用的依赖
Cython
Kivy的不同版本只对某个Cython版本进行了测试。
与SDL2的依赖关系
Ubuntu 案例
在下面的命令中,在Python 2中使用“Python”和“Python-dev”,或者在Python 3中使用“Python 3”和“Python 3-dev”。
# Install necessary system packages
sudo apt-get install -y \
python-pip \
build-essential \
git \
python \
python-dev \
ffmpeg \
libsdl2-dev \
libsdl2-image-dev \
libsdl2-mixer-dev \
libsdl2-ttf-dev \
libportmidi-dev \
libswscale-dev \
libavformat-dev \
libavcodec-dev \
zlib1g-dev
# Install gstreamer for audio, video (optional)
sudo apt-get install -y \
libgstreamer1.0 \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good
注意:依赖于您的Linux版本,您可能会收到与“ffmpeg”包相关的错误信息。在这种情况下,使用“libav-tools”代替“ffmpeg”,或者使用PPA(如下所示):
- sudo add-apt-repository ppa:mc3man/trusty-media
- sudo apt-get update
- sudo apt-get install ffmpeg
安装
#确认Pip, Virtualenv and Setuptools 已经被更新了
sudo pip install --upgrade pip virtualenv setuptools
# 然后创建一个命名为 "kivyinstall" 的 virtualenv(虚拟环境):
# 1. 使用默认的解释器
virtualenv --no-site-packages kivyinstall
# 或者 2. 使用指定的解释器
# (这样将使用位置在/usr/bin/python2.7的python解释器)
virtualenv --no-site-packages -p /usr/bin/python2.7 kivyinstall
# 输入 virtualenv
. kivyinstall/bin/activate
# 这里使用正确的Cython
pip install Cython==0.27.3
# 安装稳定的Kivy版本到virtualenv里面
pip install kivy
# 对于开发版本的Kivy, 使用以下命令替代
# pip install git+https://github.com/kivy/kivy.git@master
与传统PyGame的依赖关系
Ubuntu 案例
# 安装系统必要的包
sudo apt-get install -y \
python-pip \
build-essential \
mercurial \
git \
python \
python-dev \
ffmpeg \
libsdl-image1.2-dev \
libsdl-mixer1.2-dev \
libsdl-ttf2.0-dev \
libsmpeg-dev \
libsdl1.2-dev \
libportmidi-dev \
libswscale-dev \
libavformat-dev \
libavcodec-dev \
zlib1g-dev
Fedora
$ sudo yum install \
make \
mercurial \
automake \
gcc \
gcc-c++ \
SDL_ttf-devel \
SDL_mixer-devel \
khrplatform-devel \
mesa-libGLES \
mesa-libGLES-devel \
gstreamer-plugins-good \
gstreamer \
gstreamer-python \
mtdev-devel \
python-devel \
python-pip
Fedora
$ sudo yum install \
make \
mercurial \
automake \
gcc \
gcc-c++ \
SDL_ttf-devel \
SDL_mixer-devel \
khrplatform-devel \
mesa-libGLES \
mesa-libGLES-devel \
gstreamer-plugins-good \
gstreamer \
gstreamer-python \
mtdev-devel \
python-devel \
python-pip
OpenSuse
$ sudo zypper install \
python-distutils-extra \
python-gstreamer-0_10 \
python-enchant \
gstreamer-0_10-plugins-good \
python-devel \
Mesa-devel \
python-pip
$ sudo zypper install -t pattern devel_C_C++
安装
# 确认Pip, Virtualenv and Setuptools 已经更新了
sudo pip install --upgrade pip virtualenv setuptools
# 接着创建命名为“kivyinstall”的virtualenv:
# 1. 使用默认的python解释器
virtualenv --no-site-packages kivyinstall
# 或者 2. 使用指定的解释器# (使用 /usr/bin/python2.7)
virtualenv --no-site-packages -p /usr/bin/python2.7 kivyinstall
# 进入 virtualenv
. kivyinstall/bin/activate
pip install numpy
pip install Cython==0.27.3
# 如果你想使用pygame 后端代替 sdl2
# 你可以使用命令行export USE_SDL2=0. 安装pygame
# 如果Kivy安装的时候找不到sdl2 库它就会自动设置该值为0,然后尝试使用pygame
pip install hg+http://bitbucket.org/pygame/pygame
#在virtualenv中安装稳定版本的kivy
pip install kivy
#对于开发版本,你可以使用以下命令代替:
pip install git+https://github.com/kivy/kivy.git@master
安装额外的Virtualenv的包
# 在 virtualenv中安装开发版本的buildozer
pip install git+https://github.com/kivy/buildozer.git@master
# 在 virtualenv中安装开发版本的plyer
pip install git+https://github.com/kivy/plyer.git@master
# 为KivyCatalog 安装依赖
pip install -U pygments docutils
从命令行启动
我们准备了运行例子。然而,这些示例被封装在包内。这意味着您必须首先知道easy_install已经安装了当前的Kivy包中,然后转到示例目录:
$ python -c "import pkg_resources; print(pkg_resources.resource_filename('kivy', '../share/kivy-examples'))"
你应该有一个路径的值:
/usr/local/lib/python2.6/dist-packages/Kivy-1.0.4_beta-py2.6-linux-x86_64.egg/share/kivy-examples/
然后你可以切换到案例文件夹中,运行:
# 执行 touchtracer
$ cd <path to kivy-examples>
$ cd demo/touchtracer
$ python main.py
# 执行 pictures
$ cd <path to kivy-examples>
$ cd demo/pictures
$ python main.py
如果您熟悉UNIX和符号链接,您可以在主页目录中直接创建一个链接,以便于访问。例如:
- 从上面的命令行获取示例路径
- 粘贴到命令行
$ ln -s <path to kivy-examples> ~/
- 然后你在你的home文件夹目录访问kivy的案例程序
$ cd ~/kivy-examples
如果你想通过脚本(./main.py)或者双击它们可以启动你的Kivy程序,你需要通过链接定义正确的python版本。例如:
$ sudo ln -s /usr/bin/python2.7 /usr/bin/kivy
或者如果你想在virtualenv中运行Kivy程序,链接到Python解释器,你可以这样:
$ sudo ln -s /home/your_username/Envs/kivy/bin/python2.7 /usr/bin/kivy
然后每一行的python文件,输入:
#!/usr/bin/kivy
注意: 谨防Python文件存储的时候以windows风格的行末(CR-LF)结束。Linux是不会忽略<CR>字符的,它会尝试使用它作为文件名的一部分。这样会产生混乱的信息。所以建议要以Unix行风格结束文件行内容。
设备权限
当你的APP启动的时候,Kivy使用 Mtdev 扫描可用的多点触控设备作为输入。对这些设备的访问通常限于具有适当权限的用户或组。
如果您无法访问这些设备,KiVy将指定这些设备记录错误或警告,,通常类似于:
Permission denied:'/dev/input/eventX'
为了使用这些设备,需要授予用户或组权限。这可以通过:
$ sudo adduser $USER input
注意,您需要退出,然后再次返回,以应用这些权限。
1.2.5 在安卓中安装
Kivy是一个Python框架,它安装在Android设备上,就像在桌面桌面机器上一样简单。然而,你可以编译Kivy应用为标准的安卓APK应用程序,运行起来和正常的Java 应用程序差不多。
我们提供了多种不同的工具帮助你在安卓的设备中运行,具体内容在安卓打包的章节中。这些包含了创建一个发布在安卓市场上的完整标准APK程序。也包含了不需要经过编译步骤,直接使用预先准备好的Kivy执行器执行Kivy apps。
1.2.6 在树莓派中安装
你可以手动安装Kivy。或者你可以下载和启动KivyPie在树莓派系统中。这些都在以下的内容中说明:
- 手动安装(在 Raspbian Jessie/Stretch)
sudo apt-get update
sudo apt-get install libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev \
pkg-config libgl1-mesa-dev libgles2-mesa-dev \
python-setuptools libgstreamer1.0-dev git-core \
gstreamer1.0-plugins-{bad,base,good,ugly} \
gstreamer1.0-{omx,alsa} python-dev libmtdev-dev \
xclip xsel
- 安装足够新版本的Cython
sudo pip install -U Cython==0.27.3
- 在你的系统中进行全局安装。
sudo pip install git+https://github.com/kivy/kivy.git@master
- 或者自己构建kivy(最好用于开发):
git clone https://github.com/kivy/kivy
cd kivy
make echo "export PYTHONPATH=$(pwd):\$PYTHONPATH" >> ~/.profile
source ~/.profile
注意:在1.10.1之前的kivy版本中,Mesa库命名更改可能导致“Unable to find any valuable Window provider”错误。如果你遇到此问题,请升级或查询问题5360。
手动安装(在Raspbian Wheezy)
- 为GStreamer增加APT源:
deb http://vontaene.de/raspbian-updates/ . main
- 为vontaene.de 增加APT key
gpg --recv-keys 0C667A3E
gpg -a --export 0C667A3E | sudo apt-key add
- 安装依赖:
sudo apt-get update
sudo apt-get install libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev \
pkg-config libgl1-mesa-dev libgles2-mesa-dev \
python-setuptools libgstreamer1.0-dev git-core \
gstreamer1.0-plugins-{bad,base,good,ugly} \
gstreamer1.0-{omx,alsa} python-dev
- 从源代码中安装pip
wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py
sudo python get-pip.py
- 从源代码中安装Cython
sudo pip install Cython==0.26.1
- 在你的系统中全局安装Kivy:
sudo pip install git+https://github.com/kivy/kivy.git@master
- 或者自己构建Kivy(最好用于开发):
git clone https://github.com/kivy/kivy
cd kivy
make echo "export PYTHONPATH=$(pwd):\$PYTHONPATH" >> ~/.profile
source ~/.profile
KivyPie 发行版
KiVyPie是一种紧凑且轻量级的基于Raspbian的发行版,它配备了Kivy并准备运行。这是应用上面描述的手动安装步骤的结果,还有一些额外的工具。你可以从http://kivypie.mitako.eu/kivy-download.html下载图像并在树莓派上引导它。
运行案例
切换到你的 kivy/examples文件夹,你可以有大量的案例进行测试:
你可以开始展示:
cd kivy/examples/demo/showcase
python main.py
3d 猴子演示也是挺有趣的:
cd kivy/examples/3Drendering
python main.p
更改默认屏幕以使用
运行Kivy的时候 ,你可以设置环境变量 KIVY_BCM_DISPMANX_ID 修改显示。例如,强制显示HDMI的时候,可以这样:
KIVY_BCM_DISPMANX_ID=2 python main.py
使用官方的树莓派触摸显示
如果你正在使用官方的树莓派触摸显示,你需要配置Kivy以它作为输入源。可以编辑文件 ~/.kivy/config.ini中的[input]字段。增加:
mouse = mouse
mtdev_%(name)s = probesysfs,provider=mtdev
hid_%(name)s = probesysfs,provider=hidinput
对于更多配置Kivy的内容,可以参考配置Kivy的章节。
我们使用GPIO/物理输入在PyCON2013期间制作了些游戏:一个按钮和一个斜坡。从HTTPS://GITHUBCOM/KIVY/PIKI获取。你将需要在代码中修改GPIO引脚。还可以通过视频,看看我们正在做什么:http://www.youtube.com/watch?v=NVM09gaX6pQ
1.3 开发版本
开发版本是用于开发者和测试者的。注意,运行开发版本的Kivy,你可能冒着一定的风险运行着潜在错误的代码。要使用开发版本,你首先需要安装依赖。此后,您需要以方便开发的方式在计算机上设置Kivy。更多内容,可以查看*贡献章节
1.3.1 安装依赖
要安装Kivy的依赖项,请为你的平台按照下面的指南。你可能还需要RST和lexing组件的这些包:
$ sudo pip install pygments docutils
Ubuntu
对于Ubuntu 12.04或者以上的版本,只需要输入以下的指令就可以安装所有需要的包:
$ sudo apt-get install python-setuptools python-pygame python-opengl \
python-gst0.10 python-enchant gstreamer0.10-plugins-good python-dev \
build-essential libgl1-mesa-dev-lts-quantal libgles2-mesa-dev-lts-quantal\
python-pip
对于Ubuntu 15.04或者比12.04更老的版本,以下可能可以工作:
$ sudo apt-get install python-setuptools python-pygame python-opengl \
python-gst0.10 python-enchant gstreamer0.10-plugins-good python-dev \
build-essential libgl1-mesa-dev libgles2-mesa-dev zlib1g-dev python-pip
对于Ubutn16.04
···
$ sudo apt-get install python-setuptools python-pygame python-opengl \
python-gst0.10 python-enchant gstreamer0.10-plugins-good python-dev \
build-essential python-pip libgl1-mesa-dev libgles2-mesa-dev zlib1g-dev
···
对于Ubuntu 17.10
$ sudo apt-get install python-setuptools python-pygame python-opengl \
python-enchant python-dev build-essential python-pip libgl1-mesa-dev \
libgles2-mesa-dev zlib1g-dev
Kivy要求最新版本的Cython,最好使用最新支持的pypi
$ sudo pip install --upgrade Cython==0.27.3
OS X
在不使用brew的情况下,可以通过在终端中手动粘贴以下命令来安装KiVy的依赖项:
curl -O -L https://www.libsdl.org/release/SDL2-2.0.4.dmg
curl -O -L https://www.libsdl.org/projects/SDL_image/release/SDL2_image-2.0.1.dmg
curl -O -L https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-2.0.1.dmg
curl -O -L https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-2.0.13.dmg
curl -O -L http://gstreamer.freedesktop.org/data/pkg/osx/1.7.1/gstreamer-1.0-1.7.1-x86_64.pkg
curl -O -L http://gstreamer.freedesktop.org/data/pkg/osx/1.7.1/gstreamer-1.0-devel-1.7.1-x86_64.pkg
hdiutil attach SDL2-2.0.4.dmg sudo cp -a /Volumes/SDL2/SDL2.framework /Library/Frameworks/
这应该询问你的根密码,提供它,然后在你的终端粘贴下面的行:
hdiutil attach SDL2_image-2.0.1.dmg sudo cp -a /Volumes/SDL2_image/SDL2_image.framework /Library/Frameworks/ hdiutil attach SDL2_ttf-2.0.13.dmg
sudo cp -a /Volumes/SDL2_ttf/SDL2_ttf.framework /Library/Frameworks/ hdiutil attach SDL2_mixer-2.0.1.dmg
sudo cp -a /Volumes/SDL2_mixer/SDL2_mixer.framework /Library/Frameworks/
sudo installer -package gstreamer-1.0-1.7.1-x86_64.pkg -target /
sudo installer -package gstreamer-1.0-devel-1.7.1-x86_64.pkg -target /
pip install --upgrade --user cython pillow
现在你已经有了kivy的依赖,你需要确认已经安装了命令行工具:
xcode-select --install
切换到正确的文件夹,例如:
mkdir ~/code
cd ~/code
你现在可以安装Kivy:
git clone http://github.com/kivy/kivy
cd kivy
make
这样会编译kivy,为了在你的Python环境中能够访问,需要把变量PYTHONPATH指向到以下文件夹:
export PYTHONPATH=~/code/kivy:$PYTHONPATH
检查Kivy是否安装成功,可以在命令行下面输入以下内容:
python -c "import kivy"
,然后你会得到类似以下的信息:
$ python -c "import kivy"
[INFO ] [Logger ] Record log in /Users/quanon/.kivy/logs/kivy_15-12-31_21.txt
[INFO ] [Screen ] Apply screen settings for Motorola Droid 2
[INFO ] [Screen ] size=480x854 dpi=240 density=1.5 orientation=portrait
[INFO ] [Kivy ] v1.9.1-stable
[INFO ] [Python ] v2.7.10 (default, Oct 23 2015, 18:05:06)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)]
OSX HomeBrew
如果你更喜欢使用homebrew,可以这样安装依赖:
$ brew install sdl2 sdl2_image sdl2_ttf sdl2_mixer gstreamer
1.3.2 安装Kivy以便开发
现在你已经所有需要的依赖,是应该下载和编译开发版本的Kivy了:
···
cd kivy
···
编译:
$ python setup.py build_ext --inplace -f
如果你有make工具,你也可以这样,作用和上文提到的一样:
make
警告:默认情况下,Python 2.7到2.7.2版本使用的是GCC编译器,它是和更早XCode一起发布的。到了4.2版本XCode,XCode默认情况下只有CLang编译器。这样意味着,使用XCode4.2版本或者以上的版本的,你需要确认至少安装了Python2.7.3版本,更好的是使用最新版本(截止撰稿的的时候,最新版本是2.7.5)。
如果你想修改Kivy 代码本身,建立 PYTHONPATH 环境变量 去指向你的克隆代码。这样的话,你就不用在每次很小的修改都要使用setup.py install进行安装。Python将会自动将你克隆的代码Import kivy。
或者,如果您不想对Kivy本身做任何更改,你也可以运行(如Admin,例如SUDO):
···
$ python setup.py install
···
如果你想为Kivy的代码做一份贡献的话,可以参考贡献章节。
1.3.3 运行测试套件
为了帮助检测Kivy中的问题和行为变化,提供了一组unittests。一个好的做法是在你的Kyvy安装之后和每次你想修改kivy的时候运行它们。如果你认为在Kivy遇到了一些问题,也许测试会显示相关的内容。(如果不是,那也许是好的开始。)
Kivy测试是基于nosetest的。你可以从你的包管理器中安装它
$ pip install nose
运行测试套件:
$ make test
1.3.4 卸载Kivy
如果你正在混合多个Kivy版本,你可能会对每个Kivy版本所在的位置感到困惑。你可能需要在Python库路径中多次跟踪安装多个Kivy版本。为了找出当前安装的版本,可以使用命令行:
$ python -c 'import kivy; print(kivy.__path__)'
然后递归删除该目录。
如果在Linux上安装了带有easy_install安装的Kivy,目录可能包含一个“egg”目录。也删除它:
$ python -c 'import kivy; print(kivy.__path__)'
['/usr/local/lib/python2.7/dist-packages/Kivy-1.0.7-py2.7-linux-x86_64.egg/kivy']
$ sudo rm -rf /usr/local/lib/python2.7/dist-packages/Kivy-1.0.7-py2.7-linux-x86_64.egg
如果你使用apt-get安装的,使用以下方法:
$ sudo apt-get remove --purge python-kivy