用Python爬取数据,python输入两个数获得他们的和
虽然python语言非常通用,但是用它来开发app似乎还是有点不对。所以用python开发的app,应该作为编码练习或者自娱自乐。况且目前这方面的模块还不是特别成熟,bug也不少。总之,我劝你不要轻言进入。
准备用python开发app需要一个python模块——kivy,这是一个开源的跨平台Python开发框架,用于开发创新应用。简而言之,这是一个python桌面程序开发框架(类似于wxpython等模块)。厉害的是kivy支持linux、mac、windows、android、ios平台,这也是开发app需要这个模块的原因。
虽然kivy是跨平台的,但是如果要在不同的平台上使用python代码,就需要将python代码打包成相应平台的可执行程序。好在kivy project下面有一个打包工具项目——buildozer,因为相对简单,自动化程度高,所以是官方推荐的打包工具。其他项目如python-for-android也可以起到类似的作用,这里就不介绍了。
要构建kivy开发环境,需要在pc上安装kivy开发环境。下面演示一下mac和linux下的安装过程。
Install kivy for mac安装一些依赖包:
Brew安装PKG-配置SDL 2 SDL 2 _ Image SDL 2 _ TTF SDL 2 _ Mixer GStreamer安装cython和kivy:
Pip Cython==0.25 Pip安装kivy如果在安装kivy时报告了错误,请按照以下方式安装Kivy:
git clone https://github.com/kivy/kivypython setup . py install安装后测试:
python python 2 . 7 . 10(默认,2017 . 7 . 15,17:16:57)[GCC 4.2.1兼容Apple LLVM 9 . 0 . 0(clang-900 . 0 . 31)]有关详细信息,请在darwinType help 、 copyright 、 credits 或 license 上键入。在/Users/didi/中导入kivy[INFO ] [Logger ]记录日志。Kivy/logs/Kivy _ 18-05-08 _ 4 . txt[INFO][Kivy]1 . 10 . 1 . dev 0,git-5f6c66e,20180507 [info] [python] v2.7.10(默认,2017年7月15日17: 16: 57) [GCC 4.2.1兼容Apple LLVM 9.0.0]
安装kivy for centos7首次安装依赖项:
yum Install \ make \ mercurial \ automake \ gcc \ gcc-c \ SDL _ TTF-devel \ SDL _ mixer-devel \ khr platform-devel \ mesa-libGLES \ mesa-libGLES-devel \ Gstreamer-plugins-good \ Gstreamer \ Gstreamer-python \ mtdev-devel \ python-devel \ python-pip \ Java-devel安装cython和kivy:
安装Cython==0.20 pip安装kivy Centos安装kivy参考:https://kivy.org/docs/installation/installation-linux.html #使用软件包
注:其他安装kivy的方式可以移动:https://kivy.org/#download(需要翻墙)
用kivy开发第一个python app。kivy安装好之后,就可以开发app程序了。这是hello-world程序的演示。kivy更复杂的用法不是本文的重点,后面会以书面形式介绍。
创建一个main.py文件并编写:#!-*-编码:utf-8-*-from kivy . app import app class hello app(app):passif _ _ name _ _= _ _ main _ :hello app()。运行()2)创建一个hello.kv文件,并写入:
标签:文字:‘你好,世界!I nmask 简单描述:main.py是入口函数,定义了一个HelloApp类,继承了kivy.app;Hello.kv文件是一个kivy程序,相当于定义了界面风格等。这个文件的命名规则是类名小写,app移除。
运行第一个python应用python main.py运行结果:
安装buildozer工具通过上面的编码,我创建了我的第一个python app程序,可以直接在mac、linux、windows平台上运行。那么我怎么让它在安卓或者苹果手机上运行呢?我们知道要在android上运行,需要将其打包成apk安装程序,所以需要使用前面提到的buildozer工具,(buildozer工具可以打包kivy程序,支持Android、ios等。).buildozer的安装过程相对简单:
Pip Build Dozer使用Build Dozer工具将kivy程序打包成apk并在python项目目录下运行:
buildozer init的成功操作将创建一个配置文件buildozer.spec,您可以通过修改配置文件来更改应用程序的名称,然后运行:
buildozer android调试部署运行运行以上命令将会生成跨平台的安装包,可适用安卓、ios等,如果用于安卓,则是利用python-for-android项目。
在第一次运行以上命令的时候,会自动在系统中下载安卓软件开发工具包等必要文件,如下图。(过程需要翻墙,而且有很多依赖需要下载)
说明:这里只演示打包成应用文件,iso平台的可自行研究,参考文档:https://github.com/kivy/buildozer。
python apk程序测试如果以上步骤都运行成功的话,应该会在项目目录下的wxdlq目录下生成一个应用文件,类似如下:
然后将应用下载到安卓系统的手机上,安装即可,测试效果如下:
打开应用程序:
buildozer使用说明用法:buildozer [ -配置文件名] [ -详细] [目标]命令.buildozer-版本可用目标:Android Android Android目标,基于python-for-Android项目iOS目标,基于kivy-iOS项目Android _旧Android目标,基于python-for-android项目(旧工具链)全局命令(无目标):distclean清理整个Buildozer环境。帮助显示Buildozer help.init在当前目录中创建初始buildozer.spec通过SimpleHTTPServersetdefault为wxdlq目录提供服务设置在未给定参数时运行的默认命令版本显示Buildozer版本目标命令:清理清理目标环境更新更新目标依赖项调试在调试模式中构建应用程序在发布模式中发布构建应用程序部署在上部署应用程序参数必须跟在-,或使用别名之后,以使aliaslogcat显示来自设备目标 ios 命令的日志:列表_身份列出用于签名的可用标识xcode打开开发环境项目。目标“安卓”命令:亚行从Android SDK运行亚洲开发银行.参数必须跟在-或使用-别名之后,以使aliaslogcat显示来自设备p4a运行p4a命令的日志。参数必须跟在阿里斯特后面,或者使用阿里斯特生成别名buildozer打包过程中的坑点如果在打包过程中遇到报错,可以修改buildozer.spec配置文件中的日志级别为2,然后重新运行,可以看具体的错误信息。
报错:您可能错过了安装32位库这个错是我在centos7上运行时报的错,大意是系统缺少了某些32位的依赖文件。
解决方案:
yum-y install-skip-broken glibc。i686艺术。i686音频文件。i686 bzip2-libs。开罗i686号公路。i686赛勒斯-萨索尔-利布。i686 dbus-libs。i686 directfb。i686 esound-libs。i686 fltk。i686自由过剩。i686 GTK 2。i686 Hal-libs。i686 imlib。i686 lcms-lib参考:https://问。fedora项目。org/en/question/9556/how-do-I-install-32位-64位库-fedora/
报错:编译Cython文件时出错错误大意为cython文件出错,可能是cython模块没有安装,或者版本有问题。
解决方案:
点安装cython==0.25报错:io error:[错误号2]没有这样的文件或目录……这是在打包的最后一步,将应用文件复制到项目wxdlq目录下时报的错,是buildozer的一个臭虫。
解决方案:
修改/usr/local/lib/python 2.7/dist-packages/buildozer/tagets/Android。巴拉圭文件:
(1)在文件开头导入:
从distutils.version导入宽松版(2)将786行:XXX从标题中发现了应用名称实际上是如何构建的这一行以下的代码替换为:
_ _ SDK _ dir=self。Android _ SDK _ dir build _ tools _ versions=OS。listdir(join(_ _ SDK _ dir, build-tools ))build _ tools _ versions=sorted(build _ tools _ versions,key=lose version)build _ tools _ versions=build _ versions[-1]gradle _ files=[ build。gradle , grad le , grad Lew ]is _ grad le _ build=any((exists(join(dist _ dir,x)) for x in gradle_files))和构建工具虚拟机郑振宇官方推出了一个buildozer虚拟机镜像,已经安装好了buildozer以及一些依赖文件,为buildozer打包测试提供平台。由于之前我在老兄上利用buildozer打包一直报错,后来换成摘录也依然没有成功,因此便下载了此虚拟机,测试效果如下:
虚拟机下载地址:http://txzone。net/files/torrents/kivy-buildozer-VM-2.0。活力
说明:对于无法解决依赖问题的朋友,可以使用此虚拟机进行程序打包,开发环境还是推荐用自己的本机。
郑振宇开发实例因为本文重点在于介绍如何利用基维布尔多泽尔开发一款python app,因此对于郑振宇的开发过程,以及应用功能进行了最简化。想要学习如何开发更复杂的app,可参考:https://木雪子。github。io/post/kivy-perface。html #
来源:https://转蓝。胡志。com/p/36590576
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。