Python開發(fā)一個APP居然如此之簡單?老王自學(xué)三月就獨立開發(fā)了(用python開發(fā)app)
python言語雖然很萬能,但用它來開發(fā)app還是顯得有點不對路,因而用python開發(fā)的app該當(dāng)是作爲(wèi)編碼練習(xí)、或許自娛自樂所用,加上目前這方面的模塊還不是特別成熟,bug比擬多,總而言之,勸君莫輕入。
預(yù)備工具
應(yīng)用python開發(fā)app需求用到python的一個模塊–kivy,kivy是一個開源的,跨平臺的Python開發(fā)框架,用于開發(fā)運用創(chuàng)新的使用順序。簡而言之,這是一個python桌面順序開發(fā)框架(相似wxpython等模塊),弱小的是kivy支持linux、mac、windows、android、ios平臺,這也是為何開發(fā)app需求用到這個模塊。
雖然kivy是跨平臺的,但是想要在不同的平臺運用python代碼,還需求將python代碼打包成對應(yīng)平臺的可執(zhí)行順序,好在kivy項目下有個打包工具項目–buildozer,這是官方引薦的打包工具,由于絕對比擬復(fù)雜,自動化水平高,其他項目比方:python-for-android也能起到相似的作用,這里不展開引見。
搭建kivy開發(fā)環(huán)境
需求在pc上裝置kivy開發(fā)環(huán)境,這里演示下mac與linux下的裝置進程。
<pre class=”ql-align-justify” style=”-webkit-tap-highlight-color: transparent; box-sizing: border-box; font-family: Consolas, Menlo, Courier, monospace; font-size: 16px; white-space: pre-wrap; position: relative; line-height: 1.5; color: rgb(153, 153, 153); margin: 1em 0px; padding: 12px 10px; background: rgb(244, 245, 246); border: 1px solid rgb(232, 232, 232); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;”>install kivy for mac </pre>
安裝一些依賴包:
安裝完測試一下:
說明:導(dǎo)入kivy模塊沒有報錯則說明安裝成功。
install kivy for centos7
先安裝依賴:
安裝cython以及kivy:
用kivy開發(fā)第一個python app
安裝完kivy就可以開發(fā)app程序了,這里演示下hello-world程序,關(guān)于kivy更復(fù)雜的用法不是本文重點,后面再成文介紹。
創(chuàng)建一個main.py文件,寫入:
創(chuàng)建一個hello.kv文件,寫入:
群簡單說明:main.py是入口函數(shù),定義了一個HelloApp類,該類繼承kivy.app;hello.kv文件是kivy程序,相當(dāng)于定義界面風(fēng)格等,該文件命名規(guī)則為類名小寫且去除app。
運行第一個python app
結(jié)果
裝置buildozer工具
經(jīng)過以上的編碼,我創(chuàng)立了本人的第一個python app順序,該順序可以間接在mac、linux、windows平臺下運轉(zhuǎn),那麼如何讓它在安卓或許蘋果手機上運轉(zhuǎn)呢?我們曉得在安卓上運轉(zhuǎn),需求將其打包成apk裝置順序,因而就需求用到后面提到過的buildozer工具,(buildozer工具可以打包kivy順序,支持android、ios等),buildozer的裝置進程比擬復(fù)雜:
<pre style=”-webkit-tap-highlight-color: transparent; box-sizing: border-box; font-family: Consolas, Menlo, Courier, monospace; font-size: 16px; white-space: pre-wrap; position: relative; line-height: 1.5; color: rgb(153, 153, 153); margin: 1em 0px; padding: 12px 10px; background: rgb(244, 245, 246); border: 1px solid rgb(232, 232, 232); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;”>pip install buildozer
運用buildozer工具將kivy順序打包成apk
在python項目目錄下運轉(zhuǎn):
<pre style=”-webkit-tap-highlight-color: transparent; box-sizing: border-box; font-family: Consolas, Menlo, Courier, monospace; font-size: 16px; white-space: pre-wrap; position: relative; line-height: 1.5; color: rgb(153, 153, 153); margin: 1em 0px; padding: 12px 10px; background: rgb(244, 245, 246); border: 1px solid rgb(232, 232, 232); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;”>buildozer init</pre>
運轉(zhuǎn)成功將會創(chuàng)立一個配置文件buildozer.spec,可以經(jīng)過修正配置文件更改app的稱號等,然后運轉(zhuǎn):
<pre style=”-webkit-tap-highlight-color: transparent; box-sizing: border-box; font-family: Consolas, Menlo, Courier, monospace; font-size: 16px; white-space: pre-wrap; position: relative; line-height: 1.5; color: rgb(153, 153, 153); margin: 1em 0px; padding: 12px 10px; background: rgb(244, 245, 246); border: 1px solid rgb(232, 232, 232); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;”>buildozer android debug deploy run1</pre>
運轉(zhuǎn)以上命令將會生成跨平臺的裝置包,可適用安卓、ios等,假如用于安卓,則是應(yīng)用python-for-android項目。
在第一次運轉(zhuǎn)以上命令的時分,會自動在零碎中下載安卓sdk等必要文件,如下圖。(進程需求翻墻,而且有很多依賴需求下載)
怎么樣 小伙伴們都會了嗎,歡迎大家一起討論喲~
最后多說一句,小編是一名python開發(fā)工程師,這里有我自己整理了一套最新的python系統(tǒng)學(xué)習(xí)教程,包括從基礎(chǔ)的python腳本到web開發(fā)、爬蟲、數(shù)據(jù)分析、數(shù)據(jù)可視化、機器學(xué)習(xí)等。想要這些資料的可以關(guān)注小編,并在后臺私信小編:“01”即可領(lǐng)取。