python跨平臺app開發(fā)框架(跨平臺APP開發(fā))
本篇文章給大家談談python跨平臺app開發(fā)框架,以及跨平臺APP開發(fā)對應的知識點,希望對各位有所幫助,不要忘了收藏本站喔。
python可以開發(fā)app嗎
python可以開發(fā)app嗎?
python是可以開發(fā)app的,例如我們可以使用kivy開發(fā)安卓APP,Kivy是一套專門用于跨平臺快速應用開發(fā)的開源框架,使用Python和Cython編寫,對于多點觸控有著非常良好的支持,不僅能讓開發(fā)者快速完成簡潔的交互原型設(shè)計,還支持代碼重用和部署,絕對是一款頗讓人驚艷的NUI框架。
Kivy的主要架構(gòu)由Kivy組織開發(fā),并有Python用于Android,Kivy iOS和其它許多函式庫被使用在所有平臺。在2012年,Kivy從Python軟件基金會獲得$5000美元補助,用于移植Kivy到Python 3.3。Kivy也支援由Bountysource贊助的樹莓派。
其架構(gòu)包括所有建造應用程序的元素,例如:
支援許多種輸入,例如鼠標,鍵盤、觸控式使用者界面(TUIO)和特定操作系統(tǒng)的多重觸控事件,只采用OpenGL ES 2的圖形函式庫,且根基于向量緩沖物件(Vertex Buffer Object)和著色器,支援多點觸控的龐大控件,一個中間語言(Kv)用來簡化客制控件的設(shè)計。
Kivy改良了PyMT專案,并且推薦給新的專案采用。
相關(guān)推薦:《Python教程》以上就是小編分享的關(guān)于python可以開發(fā)app嗎的詳細內(nèi)容希望對大家有所幫助,更多有關(guān)python教程請關(guān)注環(huán)球青藤其它相關(guān)文章!
python可以寫軟件么怎么寫?
22點24分準時推送,第一時間送達
編輯:技術(shù)君 | 來源:youerning
上一篇:
正文
前言
用 Python 寫安卓 APP 肯定不是最好的選擇,目前用Java和 kotlin 寫的居多,但是肯定也是一個很偷懶的選擇,而且實在不想學習 Java,再者,就編程而言已經(jīng)會的就 Python與Golang(注:Python,Golang水平都一般),那么久Google了一下Python 寫安卓的 APP 的可能性,還真行。
既然要寫個APP,那么總得要有個想法吧。其實想做兩個APP來著,一個是自己寫著好玩的,一個是關(guān)于運維的。關(guān)于運維的APP,設(shè)計應該如下
可能長這樣
然后設(shè)計應該是這樣。
如果覺得可行的話,評論留言一下你覺得應該寫進這個APP的運維常用命令吧^_^,筆者暫時想到的是top,free -m,df –h,uptime,iftop,iotop,如果有什么好的想法就狠狠的砸過來吧,筆者到時應該也會把這個寫成一個項目放到github上,大家一起用嘛,開源才是王道,哈哈。
開發(fā)安卓APP
我們使用kivy開發(fā)安卓APP,Kivy是一套專門用于跨平臺快速應用開發(fā)的開源框架,使用Python和Cython編寫,對于多點觸控有著非常良好的支持,不僅能讓開發(fā)者快速完成簡潔的交互原型設(shè)計,還支持代碼重用和部署,絕對是一款頗讓人驚艷的NUI框架。
因為跨平臺的,所以只寫一遍代碼,就可以同時生成安卓及IOS的APP,很酷吧。
本文會帶大家寫一個Hello world并瞧一瞧 Python 版的2048的代碼
kivy安裝
環(huán)境說明:筆者在用的是Python2.7.10
這里僅介紹windows平臺安裝
所有平臺參考:
更新pip,setuptools
python -m pip install --upgrade pip wheel setuptools
然后是安裝所需要的依賴
python -m pip install docutils pygmentspypiwin32 kivy.deps.sdl2 kivy.deps.glew \
kivy.deps.gstreamer --extra-index-url
值得注意的是,上面的安卓需要訪問Google,所以請自備梯子,而且kivy.deps.gstreamer這個包比較大(95MB),可以單獨本地安裝,
然后就是安裝kivy了
python -m pip install kivy
至此,安裝就已經(jīng)完畢了,值得注意的是64位系統(tǒng)沒有開啟虛擬化支持,在導入kivy的時候會報錯,如果是64位系統(tǒng)就設(shè)置一下機器的BIOS,開啟虛擬化支持吧。
注:這里只是kivy的運行環(huán)境,這樣我就能直接在windows機器上直接調(diào)試了,怎么將代碼編譯成APK文件我們會在后面講到。
如果kivy在python中應該就能導入了。
按照世界慣例,我們”hello”一下吧。
新建一個.py文件
from kivy.app import Appfrom kivy.uix.button importButton
class TestApp(App):
def build(self):
return Button(text='Hello,kivy')
TestApp().run()
運行
然后會彈出一個框,大概如下,點擊”hello,kivy”會變顏色
點擊窗口并按“F1”會這個窗口的一些屬性
然后我們回過頭看一看代碼。
##導入App,然后讓TestApp這個類繼承
from kivy.app import App##導入一個Button,運維有這個button,當你點擊的時候才會有所反應
from kivy.uix.button
importButton
###定義類,名字必須是xxxAppclass TestApp(App):
###build一個Button
def build(self):
###返回一個Button,文字內(nèi)容是“Hello,kivy”
return Button(text='Hello,kivy')
##運行,因為繼承了App,所以才有的run這個方法TestApp().run()
上面就是我們的Hello了
在windows上運行當然沒有什么太大的意義,怎么在安卓手機上運行才是我們想要的,
這時我們需要一個編譯環(huán)境。
官方說明的環(huán)境,如下:
You’ll need:
A linux computer or a virtual machine
Java
Python 2.7 (not 2.6.)
Jinja2 (python module)
Apache ant
Android SDK
雖然官方提供了一個似乎還不錯的虛擬機鏡像,但是還是有很多內(nèi)容需要翻出去,所以筆者在這里提供相對而言更加完善的鏡像
下載地址:
注:virtualbox,vmware需自行下載
root密碼:kivy
默認使用賬戶kivy,密碼:kivy123
當然你也可以下載官方鏡像,因為第一次編譯需要去國外下一大堆東西,所以請自行去下載。
Virtual Machine
A Virtual Machine with Android SDK and NDK and all otherpre-requisites pre installed to ease apk generation:
Kivy Buildozer VM
Or select the Torrent
在筆者提供的鏡像里,桌面上有一個dev_and,只要將上面寫的代碼,放入這個文件夾即可(當然也可以在其他目錄,后面會講到)。
在公眾號Python人工智能技術(shù)后臺回復“面試”,獲取騰訊Python面試題和答案。
cd Desktop/dev_and/
初始化會在當前目錄生成一個buildozer.spec文件 用于配置生成的apk相關(guān)信息
buildozer init
###修改buildozer.spec文件
vi buildozer.spec
至少修改下面三項
# (str) Title of your applicationtitle = helloworld
# (str) Package namepackage.name = helloapp
# (str) Package domain (needed for android/ios packaging)package.domain = youer.com
然后注釋
# (str) Application versioning (method 1)#version.regex = __version__ = ['"](.*)['"]#version.filename = %(source.dir)s/main.py
下面這行改為非注釋
version = 1.2.0
最后我們生成我們需要的apk文件
buildozer -v android debug
buildozer.spec更詳細的相關(guān)參數(shù)配置參考:
buildozer命令會在當前文件夾創(chuàng)建一個bin,該文件夾里面有我們想要的apk文件
helloapp-1.2.0-debug.apk
helloapp-1.2.0-debug.apk
安裝以后是這樣:
話說在編譯的時候可能出現(xiàn)空間不足的情況,根據(jù)虛擬機的不同(vmware或virtualbox)自行擴容吧。
最后我們來瞧瞧簡易版Python開發(fā)的2048這個游戲的源代碼。
代碼:
先看效果圖:
試玩了一下,還是蠻流暢的,有興趣的可以下載玩一下
下載地址:
這個游戲代碼雖然不長,但是還是蠻占篇幅的,所以簡要的說明一下流程。
主要由三部分組成,一是素材,圖片音頻之類的文件,二是Python代碼,三是kv文件,這個kv文件有點像 html 中的css。
Python代碼的文件名一般命名為 main.py
然后一定有一個叫做 XXXApp 的類,并繼承 App。
比如該類叫做GameApp,那么該目錄下的kv文件則必須為Game,如上圖所示,如果不是,那么kv文件中的一些設(shè)定就不會生效。
比如設(shè)定一個標簽
Label:
id: time
text: 'xxxx'
font_size: 60
id為time,text文本內(nèi)容為'xxxx',然后字體為60
好吧,點到為止吧,不過似乎什么都沒點到~~~
你還有什么想要補充的嗎?
你在看嗎?一起成長
郁悶于Python GUI開發(fā),有沒有好的框架
1、Kivy
Kivy是一個開源工具包能夠讓使用相同源代碼創(chuàng)建的程序能跨平臺運行。它主要關(guān)注創(chuàng)新型用戶界面開發(fā),如:多點觸應用程序。Kivy還提供了一個多點觸摸鼠標模擬器。當前支持的平臺包括:Linux、windows、Mac OS X和Android。
Kviy擁有能夠處理動畫、緩存、手勢、繪圖等功能。它還內(nèi)置許多用戶界面控件如:按鈕、攝影機、表格、Slider和樹形控件等。
2、Flexx
Flexx是一個純Python工具包,用來創(chuàng)建圖形化界面應用程序。其使用web技術(shù)進行界面的渲染。你可以用Flexx來創(chuàng)建桌面應用,同時也可以導出一個應用到獨立的HTML文檔。因為使用純Python開發(fā),所以Flexx是跨平臺的。
3、PyQt
PyQt是Qt庫的Python版本。PyQt3支持Qt1到Qt3.PyQt4支持Qt4.它的首次發(fā)布也是在1998年,但是當時它叫PyKDE,因為開始的時候SIP和PyQt沒有公開。PyQt是用SIP寫的,PyQt提供GPL版和商業(yè)版。
4、wxPython
wxPython是Python語言的一套優(yōu)秀的GUI圖形庫,允許Python程序員很方便的創(chuàng)建完整的、功能健全的GUI用戶界面。wxPython是作為優(yōu)秀的跨平臺GUI庫wxWidgets的Python封裝和Python模塊的方式提供給用戶的。
就如同Python和wxWidgets一樣,wxPython也是一款開源軟件,并且具有非常優(yōu)秀的跨平臺能力,能夠運行在32位windows、絕大多數(shù)的Unix或類Unix系統(tǒng)、Macintosh OS X上。
5、Tkinter
Tkinter是TK圖形用戶界面工具包標準的Python接口。TK是一個輕量級的跨平臺圖形用戶界面開發(fā)工具。Tk和Tkinter可以運行在大多數(shù)的Unix平臺、windows和Macintosh系統(tǒng)。
6、PyGTK
PyGTK讓你用Python輕松創(chuàng)建具有圖形用戶界面的程序,底層的GTK+提供了各式的可視元素和功能,如果需要,你能開發(fā)在GNOME桌面系統(tǒng)運行的功能完整的軟件。PyGTK真正具有跨平臺性,它能不加修改地,穩(wěn)定運行各種操作系統(tǒng)之上。除了簡單易用和快速的原型開發(fā)能力外,PyGTK還有一流的處理本地化語言的獨特功能。
了解更多python知識,推薦選擇【老男孩教育】。
python開發(fā)安卓app可行嗎
用Python寫安卓APP肯定不是最好的選擇,但是肯定是一個很偷懶的選擇。我們使用kivy開發(fā)安卓APP,Kivy是一套專門用于跨平臺快速應用開發(fā)的開源框架,使用Python和Cython編寫,對于多點觸控有著非常良好的支持,不僅能讓開發(fā)者快速完成簡潔的交互原型設(shè)計,還支持代碼重用和部署,絕對是一款頗讓人驚艷的NUI框架。 (推薦學習:Python視頻教程)
因為跨平臺的,所以只寫一遍代碼,就可以同時生成安卓及IOS的APP,很酷吧。
新建一個.py文件
運行:
然后會彈出一個框,大概如下,點擊”hello,kivy”會變顏色
以上就是小編分享的關(guān)于python開發(fā)安卓app可行嗎的詳細內(nèi)容希望對大家有所幫助,更多有關(guān)python教程請關(guān)注環(huán)球青藤其它相關(guān)文章!
八款常用的 Python GUI 開發(fā)框架推薦
作為Python開發(fā)者,你遲早都會用到圖形用戶界面來開發(fā)應用。本文將推薦一些 Python GUI 框架,希望對大家有所幫助。
Python 的 UI 開發(fā)工具包 Kivy
Kivy是一個開源工具包能夠讓使用相同源代碼創(chuàng)建的程序能跨平臺運行。它主要關(guān)注創(chuàng)新型用戶界面開發(fā),如:多點觸摸應用程序。Kivy還提供一個多點觸摸鼠標模擬器。當前支持的平臺包括:Linux、Windows、Mac OS X和Android。
Kivy擁有能夠處理動畫、緩存、手勢、繪圖等功能。它還內(nèi)置許多用戶界面控件如:按紐、攝影機、表格、Slider和樹形控件等。
Python 的 GUI 開發(fā)工具 Flexx
Flexx 是一個純 Python 工具包,用來創(chuàng)建圖形化界面應用程序。其使用 Web 技術(shù)進行界面的渲染。你可以用 Flexx 來創(chuàng)建桌面應用,同時也可以導出一個應用到獨立的 HTML 文檔。因為使用純 Python 開發(fā),所以 Flexx 是跨平臺的。只需要有 Python 和瀏覽器就可以運行。如果是使用桌面模式運行,推薦使用 Firefox 。
Qt 庫的 Python 綁定 PyQt
PyQt是Qt庫的Python版本。PyQt3支持Qt1到Qt3。 PyQt4支持Qt4。它的首次發(fā)布也是在1998年,但是當時它叫 PyKDE,因為開始的時候SIP和PyQt沒有分開。PyQt是用SIP寫的。PyQt 提供 GPL版和商業(yè)版。
Python圖形開發(fā)包 wxPython
wxPython 是 Python 語言的一套優(yōu)秀的 GUI 圖形庫,允許 Python 程序員很方便的創(chuàng)建完整的、功能鍵全的 GUI 用戶界面。 wxPython 是作為優(yōu)秀的跨平臺 GUI 庫 wxWidgets 的 Python 封裝和 Python 模塊的方式提供給用戶的。
就如同Python和wxWidgets一樣,wxPython也是一款開源軟件,并且具有非常優(yōu)秀的跨平臺能力,能夠運行在32位windows、絕大多數(shù)的Unix或類Unix系統(tǒng)、Macintosh OS X上。
Tk 圖形用戶界面 Tkinter
Tkinter(也叫Tk接口)是Tk圖形用戶界面工具包標準的Python接口。Tk是一個輕量級的跨平臺圖形用戶界面(GUI)開發(fā)工具。Tk和Tkinter可以運行在大多數(shù)的Unix平臺、Windows、和Macintosh系統(tǒng)。
Tkinter 由一定數(shù)量的模塊組成。Tkinter位于一個名為_tkinter(較早的版本名為tkinter)的二進制模塊中 。Tkinter包含了對Tk的低 級接口模塊,低級接口并不會被應用級程序員直接使用,通常是一個共享庫(或DLL),但是在一些情況下它也被Python解釋器靜態(tài)鏈接。
Pywin32
Windows Pywin32允許你像VC一樣的形式來使用PYTHON開發(fā)win32應用。代碼風格可以類似win32 sdk,也可以類似MFC,由你選擇。如果你仍不放棄vc一樣的代碼過程在python下,那么這就是一個不錯的選擇。
Python 圖形界面開發(fā)包 PyGTK
PyGTK讓你用Python輕松創(chuàng)建具有圖形用戶界面的程序.底層的GTK+提供了各式的可視元素和功能,如果需要,你能開發(fā)在GNOME桌面系統(tǒng)運行的功能完整的軟件.
PyGTK真正具有跨平臺性,它能不加修改地,穩(wěn)定運行各種操作系統(tǒng)之上,如Linux,Windows,MacOS等.除了簡單易用和快速的原型開發(fā)能力外,PyGTK還有一流的處理本地化語言的獨特功能.
用python快速開發(fā)絢麗桌面程序 pyui4win
pyui4win是一個開源的采用自繪技術(shù)的界面庫。支持C++和python。用它可以很容易實現(xiàn)QQ和360安全衛(wèi)士這樣的絢麗界面。而且,pyui4win有所見即所得界面設(shè)計器,讓C++開發(fā)人員和python開發(fā)人員直接用設(shè)計工具設(shè)計界面,而不用關(guān)心界面如何生成和運行,可以顯著縮短界面開發(fā)時間。在pyui4win中,界面甚至可以完全交給美工去處理,開發(fā)人員可以只負責處理業(yè)務邏輯,把開發(fā)人員徹底從繁雜的界面處理中解放出來。
以上就是為大家分享的八款常用的python GUI開發(fā)框架推薦,希望能對你有幫助。更多python學習資料,可以關(guān)注“武漢千鋒”微信公眾號。
python跨平臺app開發(fā)框架的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于跨平臺APP開發(fā)、python跨平臺app開發(fā)框架的信息別忘了在本站進行查找喔。