2012-04-23 319 views
5

我使用wxPython大約2年,因爲我分發給許多同事的幾個小型科學計劃。我喜歡wxPython,我已經非常熟悉它,但是有幾件事讓我發瘋(不是因爲wxPython,實際上我想繼續使用它):Python桌面應用程序

1)我有許多不同的用戶操作系統。我知道wxPython是跨平臺的,但我已經沒有時間和精力把每一次我的小軟件(以及更多的軟件)都移植到不同的操作系統上。特別是我沒有使用其中的一些(Windows7,Mac),所以我很難解決問題和用戶請求。

2)我們更新我們的軟件相當多(因爲所有時間新的想法都來自用戶和我們自己),這意味着我要再次生成所有獨立,上傳它們並讓用戶卸載並重新安裝。討厭...

我在想已經轉向Web框架,但也有一些問題。首先,許多用戶喜歡使用我的軟件離線,例如當他們旅行或沒有互聯網。其次,我們在某些數據庫中有一些數據,這些數據絕不應該放在服務器上。這完全是關於專利,並且總是討論,所以我更願意將我的一些程序作爲獨立的桌面應用程序來簡化事情。其他人可以在線,沒問題。

所以,一般來說,我會喜歡基於瀏覽器的解決方案,因爲每個人都有一個瀏覽器。我看到一些人將Django項目作爲獨立的桌面應用程序移植,我發現這並不是一個壞主意。我也關於卡米洛特的紅色,但我認爲這是相當於數據庫。 Camelot只能用於我的一些工具,而這些工具只是數據庫搜索和提取程序。但其他的根本不使用數據庫。

任何人都可以建議我,什麼是我的工具一個很好的解決方案?

回答

5

您可以使用例如用於提供UI的燒瓶。因此,只需像往常一樣編寫應用程序,但沒有GUI(通常您應該單獨使用邏輯和GUI)。之後使用例如Flask(我真的很喜歡這個微框架,但也有其他人喜歡Bottle)以網站的形式編寫UI。您可以在本地運行本網站(即一行代碼:app.run(),然後在網址爲http://localhost:5000的網絡服務器中打開它)或在網絡服務器上運行。與Apache或Nginx。

+0

此答案的缺失成分在此處:https://www.reddit.com/r/Python/comments/21evjn/is_it_possible_to_deploydistribute_flask_as_an/。它討論如何分發網絡應用程序 – 2016-06-12 19:41:24

2

如何在Python中使用Flex?你的界面是可移植的(因爲Flex創建Flash文件);你可以使用Python來連接界面。

此外,您可以決定(基於您的應用程序)將它們部署到Web上或將它們作爲原生可執行文件包裝到Flex中。

您唯一的挑戰是如果您決定打包Windows應用程序,以確保正確打包Python(應該是必需的)。

1

這可能不適合用戶使用應用程序的方式,但一種選擇是製作Linux虛擬機(Virtualbox支持最常見的操作系統作爲主機)並分發它。

這會給你一個針對性的目標,如果你研究你選擇的發行版的更新機制(Apt,Yum等),你應該可以添加自己的服務器作爲源,讓虛擬機保持自己的更新,而無需用戶執行任何操作。

+0

這是一個有趣的想法,我甚至發現了一些類似於使用虛擬機的工具(http://www.dnalinux.com/)。如何製作GUI?我可以用我用wxPython編寫的舊代碼嗎? – snowflake 2012-04-23 18:07:44