2012-01-31 64 views
1

我正在討論通過用於OSX和Windows的.app和.exe格式部署Python製作的,基於GUI的桌面應用程序。就我進入Python而言,我只將它看作是在終端/命令提示符上運行的應用程序。我知道可以使用互聯網上的各種產品(wxPython?)爲其創建用戶界面。我只想看看它是如何消失的,作爲開發人員使用盡可能少的代碼差異來創建mac和windows應用程序的一種方式。Python如何成爲一種多平臺編程語言?

+0

不是一個真正全面的答案,但我認爲如果您使用跨平臺的GUI框架(例如Qt),那麼您應該只需關注特定於操作系統的Python代碼。我的意思是像「subprocess」或「os」這樣的軟件包,根據平臺的不同,其行爲有時會有所不同。除此之外,我會說它應該是非常輕鬆的工具,如Py2App或Py2Exe。我還沒有測試過或做過,所以這只是一個鬆散的想法,我可能不會100%正確。 – kgr 2012-01-31 21:59:33

回答

0

我認爲你要找的是PyQTTkinter。兩者都是用於Python的GUI庫。兩者都是跨平臺的。此外,爲了打包分發的.exe和.app,請查看py2exepy2app

0

對於Windows,最簡單的方法是py2exe。 MacOS還有一個類似的項目。它被稱爲py2app。大多數GUI框架都是跨平臺的。只需檢查他們的文檔,甚至主頁應該有它。

充分利用os模塊。它有很多功能可以處理跨平臺的情況。一個常見的例子是文件路徑。當你建立一個路徑時,它應該是反斜槓還是正斜槓? os.path.join爲你處理,並基於它運行在哪個操作系統上。從OS發貨到OS時,您不必修改代碼。它自然也應該在Linux上運行。

順便說一下,MacOS通常會預裝Python。只要它是最近的版本,這可以使HelloWorld腳本的差異爲1kb和30mb,因此避免將Python打包。不幸的是,Windows不太好裝備。考慮下載exe文件時選擇「我已經安裝了Python」。

1

我發現Python是一種非常好的GUI編程語言。正如你所說的,你可以使用wxWidgets(wxPython)的綁定,但是對於你可以想到的所有其他跨平臺GUI工具包(Tk,Qt,GTK,FLTK等)也有綁定。這些GUI工具包應該允許你創建一個在大多數操作系統上運行未修改的程序。

就Python操作系統兼容性而言,除了一個或兩個模塊(如mmap)之外,它在所有操作系統上的行爲幾乎相同。

使用py2exe,py2app或類似工具,您可以在可執行文件中嵌入Python解釋器(以及程序的字節碼及其依賴關係),從而輕鬆分發應用程序。最終用戶可以隨時打開程序。如果你想要一種編譯語言的「安全性」,Python將不會是你使用的最好的語言(但我更喜歡可讀性而不是安全:)。

另一件需要考慮跨平臺性的事情是您計劃使用的操作系統特定功能。大多數GUI工具包不支持諸如Microsoft的DWM之類的東西(儘管您可以通過​​使用OS功能)。