Python開發(fā)一個(gè)APP居然如此之簡(jiǎn)單?老王自學(xué)三月就獨(dú)立開發(fā)了(用python開發(fā)app)

python言語雖然很萬能,但用它來開發(fā)app還是顯得有點(diǎn)不對(duì)路,因而用python開發(fā)的app該當(dāng)是作爲(wèi)編碼練習(xí)、或許自娛自樂所用,加上目前這方面的模塊還不是特別成熟,bug比擬多,總而言之,勸君莫輕入。

預(yù)備工具

應(yīng)用python開發(fā)app需求用到python的一個(gè)模塊–kivy,kivy是一個(gè)開源的,跨平臺(tái)的Python開發(fā)框架,用于開發(fā)運(yùn)用創(chuàng)新的使用順序。簡(jiǎn)而言之,這是一個(gè)python桌面順序開發(fā)框架(相似wxpython等模塊),弱小的是kivy支持linux、mac、windows、android、ios平臺(tái),這也是為何開發(fā)app需求用到這個(gè)模塊。

雖然kivy是跨平臺(tái)的,但是想要在不同的平臺(tái)運(yùn)用python代碼,還需求將python代碼打包成對(duì)應(yīng)平臺(tái)的可執(zhí)行順序,好在kivy項(xiàng)目下有個(gè)打包工具項(xiàng)目–buildozer,這是官方引薦的打包工具,由于絕對(duì)比擬復(fù)雜,自動(dòng)化水平高,其他項(xiàng)目比方:python-for-android也能起到相似的作用,這里不展開引見。

搭建kivy開發(fā)環(huán)境

需求在pc上裝置kivy開發(fā)環(huán)境,這里演示下mac與linux下的裝置進(jìn)程。

<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>

安裝一些依賴包:

Python開發(fā)一個(gè)APP居然如此之簡(jiǎn)單?老王自學(xué)三月就獨(dú)立開發(fā)了(用python開發(fā)app)

安裝完測(cè)試一下:

Python開發(fā)一個(gè)APP居然如此之簡(jiǎn)單?老王自學(xué)三月就獨(dú)立開發(fā)了(用python開發(fā)app)

說明:導(dǎo)入kivy模塊沒有報(bào)錯(cuò)則說明安裝成功。

install kivy for centos7

先安裝依賴:

Python開發(fā)一個(gè)APP居然如此之簡(jiǎn)單?老王自學(xué)三月就獨(dú)立開發(fā)了(用python開發(fā)app)

安裝cython以及kivy:

Python開發(fā)一個(gè)APP居然如此之簡(jiǎn)單?老王自學(xué)三月就獨(dú)立開發(fā)了(用python開發(fā)app)

用kivy開發(fā)第一個(gè)python app

安裝完kivy就可以開發(fā)app程序了,這里演示下hello-world程序,關(guān)于kivy更復(fù)雜的用法不是本文重點(diǎn),后面再成文介紹。

創(chuàng)建一個(gè)main.py文件,寫入:

Python開發(fā)一個(gè)APP居然如此之簡(jiǎn)單?老王自學(xué)三月就獨(dú)立開發(fā)了(用python開發(fā)app)

創(chuàng)建一個(gè)hello.kv文件,寫入:

Python開發(fā)一個(gè)APP居然如此之簡(jiǎn)單?老王自學(xué)三月就獨(dú)立開發(fā)了(用python開發(fā)app)

群簡(jiǎn)單說明:main.py是入口函數(shù),定義了一個(gè)HelloApp類,該類繼承kivy.app;hello.kv文件是kivy程序,相當(dāng)于定義界面風(fēng)格等,該文件命名規(guī)則為類名小寫且去除app。

運(yùn)行第一個(gè)python app

Python開發(fā)一個(gè)APP居然如此之簡(jiǎn)單?老王自學(xué)三月就獨(dú)立開發(fā)了(用python開發(fā)app)

結(jié)果

Python開發(fā)一個(gè)APP居然如此之簡(jiǎn)單?老王自學(xué)三月就獨(dú)立開發(fā)了(用python開發(fā)app)

裝置buildozer工具

經(jīng)過以上的編碼,我創(chuàng)立了本人的第一個(gè)python app順序,該順序可以間接在mac、linux、windows平臺(tái)下運(yùn)轉(zhuǎn),那麼如何讓它在安卓或許蘋果手機(jī)上運(yùn)轉(zhuǎn)呢?我們曉得在安卓上運(yùn)轉(zhuǎn),需求將其打包成apk裝置順序,因而就需求用到后面提到過的buildozer工具,(buildozer工具可以打包kivy順序,支持android、ios等),buildozer的裝置進(jìn)程比擬復(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

運(yùn)用buildozer工具將kivy順序打包成apk

在python項(xiàng)目目錄下運(yùn)轉(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>

運(yùn)轉(zhuǎn)成功將會(huì)創(chuàng)立一個(gè)配置文件buildozer.spec,可以經(jīng)過修正配置文件更改app的稱號(hào)等,然后運(yùn)轉(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>

運(yùn)轉(zhuǎn)以上命令將會(huì)生成跨平臺(tái)的裝置包,可適用安卓、ios等,假如用于安卓,則是應(yīng)用python-for-android項(xiàng)目。

在第一次運(yùn)轉(zhuǎn)以上命令的時(shí)分,會(huì)自動(dòng)在零碎中下載安卓sdk等必要文件,如下圖。(進(jìn)程需求翻墻,而且有很多依賴需求下載)

Python開發(fā)一個(gè)APP居然如此之簡(jiǎn)單?老王自學(xué)三月就獨(dú)立開發(fā)了(用python開發(fā)app)

怎么樣 小伙伴們都會(huì)了嗎,歡迎大家一起討論喲~

最后多說一句,小編是一名python開發(fā)工程師,這里有我自己整理了一套最新的python系統(tǒng)學(xué)習(xí)教程,包括從基礎(chǔ)的python腳本到web開發(fā)、爬蟲、數(shù)據(jù)分析、數(shù)據(jù)可視化、機(jī)器學(xué)習(xí)等。想要這些資料的可以關(guān)注小編,并在后臺(tái)私信小編:“01”即可領(lǐng)取。

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號(hào)
公眾號(hào)
在線咨詢
分享本頁
返回頂部