来源://.htm
大家好!我是。
尽管该语言非常通用,但使用它来开发该应用似乎有些错误。因此,使用开发的应用程序应用作编码练习或自我努力。此外,这方面的模块不是特别成熟,还有更多的错误。还有更多错误。总而言之,说服了Jun Mo轻描淡写。
准备
Kivy开发应用程序所需的模块是开源,即跨平台开发框架,用于开发和使用创新应用程序。简而言之,这是一个桌面程序开发框架(类似的模块)。强大的是Kivy支持,Mac,,,,,,, ios平台,这就是为什么开发应用需要使用此模块的原因。
尽管Kivy是跨平台,但如果要在不同平台上使用代码,则需要将代码打包到相应平台的可执行程序中。幸运的是,由于相对简单且高度的自动化,其他项目(例如:-for -can)也扮演类似的角色,在这里不会引入。
创建Kivy开发环境
Kivy开发环境需要在PC上安装。在这里,演示了Mac和底部的安装过程。
Kivy for Mac
安装一些依赖项:
brew install pkg-config sdl2 sdl2_image sdl2_ttf sdl2_mixer gstreamer
安装和Kivy:
pip install cython==0.25
pip install kivy
如果您安装了Kivy错误,请以以下方式安装Kivy:
git clone https://github.com/kivy/kivy
python setup.py install
安装后测试:
$python
Python 2.7.10 (default, Jul 15 2017, 17:16:57)
[on darwin ]
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import kivy
[in /Users/didi/.kivy/logs/kivy_18-05-08_4.txt ] [Logger ] Record log
[.10.1.dev0, git-5f6c66e, 20180507 ] [Kivy ] v1
[.7.10 (default, Jul 15 2017, 17:16:57) ] [Python ] v2
[ ]
注意:Kivy模块的引入没有错误,并且安装成功。
Kivy
首先安装依赖项:
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 \
java-devel
安装和Kivy:
pip install Cython==0.20
pip install kivy
安装Kivy参考:# -
注意:其他安装Kivy方法可以移动:#(需要翻转墙)
使用Kivy开发第一个应用程序
安装Kivy后,您可以开发应用程序程序。这里的演示程序。 Kivy更复杂的用法不是本文的重点,然后稍后将介绍文本。
创建一个main.py文件并写入:
#! -*- coding:utf-8 -*-
from kivy.app import App
class HelloApp(App):
pass
if __name__ == '__main__':
HelloApp().run()
创建一个.kv文件并写入:
Label:
text: 'Hello, World! I am nMask'
简单说明:main.py是一个输入函数,定义了一个继承Kivy.App;的类KV文件是Kivy程序,相当于定义接口样式。该文件的名称是类的小写,并删除了应用程序。
运行第一个应用程序
python main.py
运行结果:
安装工具
通过上面的编码,我创建了第一个可以在Mac,下运行的应用程序,因此如何在或手机上运行?
我们知道在上运行,我们需要将其包装到APK安装程序中,因此我们需要使用前面提到的工具(该工具可以包装Kivy程序,支持,iOS等),并且安装过程是相对简单:
pip install buildozer
使用该工具将Kivy程序包装到APK中
在项目目录中运行:
buildozer init
成功的操作将创建一个配置文件.spec。您可以通过修改配置文件等来更改应用程序的名称,然后运行:
跑步
运行上述命令将生成跨平台安装软件包,该软件包可用于,iOS等。如果用于,则将其用于-。
首次运行上述命令时,它将自动下载必要的文件,例如系统中的 SDK,如下所示。 (该过程需要翻上墙,并且有很多依赖项需要下载)
注意:这里只是将演示包装到APK文件中。 ISO平台可以由他自己研究和参考文档:。
APK程序测试
如果以上步骤成功运行,则应在项目目录中的bin目录中生成一个APK文件,该目录类似于以下内容:
然后将APK下载到系统的手机,安装它,测试效果如下:
打开应用程序
操作说明
Usage:
buildozer [--profile
] [--verbose] [target] ... buildozer --version
Available targets:
android Android target, based on python-for-android project
ios iOS target, based on kivy-ios project
android_old Android target, based on python-for-android project (old toolchain)
Global commands (without target):
distclean Clean the whole Buildozer environment.
help Show the Buildozer help.
init Create a initial buildozer.spec in the current directory
serve Serve the bin directory via SimpleHTTPServer
setdefault Set the default command to run when no arguments are given
version Show the Buildozer version
Target commands:
clean Clean the target environment
update Update the target dependencies
debug Build the application in debug mode
release Build the application in release mode
deploy Deploy the application on the device
run Run the application on the device
serve Serve the bin directory via SimpleHTTPServer
Target "android_old" commands:
adb Run adb from the Android SDK. Args must come after --, or
use --alias to make an alias
logcat Show the log from the device
Target "ios" commands:
list_identities List the available identities to use for signing.
xcode Open the xcode project.
Target "android" commands:
adb Run adb from the Android SDK. Args must come after --, or
use --alias to make an alias
logcat Show the log from the device
p4a Run p4a commands. Args must come after --, or use --alias
to make an alias
包装过程中的坑
如果在包装过程中遇到错误,则可以修改.spec配置文件为2,然后重组。您可以看到特定的错误信息。
错误:您必须libs
这个故障是我在运行时报告中的错。这个想法是系统缺乏某些32位依赖性文件。
解决方案:
yum -y install --skip-broken glibc.i686 arts.i686 audiofile.i686 bzip2-libs.i686 cairo.i686 cyrus-sasl-lib.i686 dbus-libs.i686 directfb.i686 esound-libs.i686 fltk.i686 freeglut.i686 gtk2.i686 hal-libs.i686 imlib.i686 lcms-libs.i686 lesstif.i686 libacl.i686 libao.i686 libattr.i686 libcap.i686 libdrm.i686 libexif.i686 libgnomecanvas.i686 libICE.i686 libieee1284.i686 libsigc++20.i686 libSM.i686 libtool-ltdl.i686 libusb.i686 libwmf.i686 libwmf-lite.i686 libX11.i686 libXau.i686 libXaw.i686 libXcomposite.i686 libXdamage.i686 libXdmcp.i686 libXext.i686 libXfixes.i686 libxkbfile.i686 libxml2.i686 libXmu.i686 libXp.i686 libXpm.i686 libXScrnSaver.i686 libxslt.i686 libXt.i686 libXtst.i686 libXv.i686 libXxf86vm.i686 lzo.i686 mesa-libGL.i686 mesa-libGLU.i686 nas-libs.i686 nss_ldap.i686 cdk.i686 openldap.i686 pam.i686 popt.i686 pulseaudio-libs.i686 sane-backends-libs-gphoto2.i686 sane-backends-libs.i686 SDL.i686 svgalib.i686 unixODBC.i686 zlib.i686 compat-expat1.i686 compat-libstdc++-33.i686 openal-soft.i686 alsa-oss-libs.i686 redhat-lsb.i686 alsa-plugins-pulseaudio.i686 alsa-plugins-oss.i686 alsa-lib.i686 nspluginwrapper.i686 libXv.i686 libXScrnSaver.i686 qt.i686 qt-x11.i686 pulseaudio-libs.i686 pulseaudio-libs-glib2.i686 alsa-plugins-pulseaudio.i686 python-matplotli
参考:
错误:文件
错误意图是文件是错误,这可能是该模块未安装或版本存在问题。解决方案:
pip install cython==0.25
错误:: [2]没有这样的文件或…..这是包装中的最后一步。将APK文件复制到项目bin目录是一个错误。
解决方案:
/usr/lib/.7/dist-/////.py文件:
在文件开始时导入:
从。
第786回合:xxx从此行下方的代码中的APK名称是如何替换的:
__sdk_dir = self.android_sdk_dir
build_tools_versions = os.listdir(join(__sdk_dir, 'build-tools'))
build_tools_versions = sorted(build_tools_versions, key=LooseVersion)
build_tools_version = build_tools_versions[-1]
gradle_files = ["build.gradle", "gradle", "gradlew"]
is_gradle_build = any((exists(join(dist_dir, x)) for x in gradle_files)) and build_tools_version >= ’25.0'
虚拟机
Kivy正式启动了已安装的虚拟机映像和一些因文档,提供了一个用于包装测试的平台。由于我以前曾经在Mac上使用过包装,因此我一直在报告错误,然后替换仍然没有成功。因此,我下载了这台虚拟机。测试效果如下:
虚拟机下载地址:
注意:对于无法解决依赖问题的朋友,您可以使用此虚拟机进行包装。仍建议开发环境使用自己的机器。
Kivy 示例
因为本文重点介绍了如何使用Kivy+开发应用程序,所以Kivy和App功能的开发过程是最简化的。
好的,就是今天的分享。如果您喜欢,请喜欢〜
<End>
1、想领取赠书,加我微信,朋友圈不定期送书;
2、想咨询学习,加我微信,每次咨询仅9.9元;
3、更多需求(学习 代码 视频剪辑),都可以加我微信,欢迎咨询。
扫码即可加我微信
推荐
版权声明:本文为 “ 【博览广文网】阅览万文、增长见识,广阔的软文阅读网站!” 原创文章,转载请附上原文出处链接及本声明;
工作时间:9:00 - 18:00
客服电话
暂无电话/微信dat818
电子邮件
80765864@qq.com
扫码二维码
获取最新动态