Python桌面应用程序

时间:2012-04-23 14:17:52

标签: python django desktop-application web-frameworks

我正在使用wxPython,因为我分发给很多同事的几个小型科学课程大约2年。我喜欢wxPython而且我已经非常熟悉了它,但是很少有东西让我发疯(不是因为wxPython,实际上我想继续使用它):

1)我在不同的操作系统上有很多用户。我知道wxPython是跨平台的,但是我已经没有时间和时间将每个小软件(以及更多的软件)移植到不同的操作系统。特别是我没有使用它们中的一些(Windows7,Mac),因此我很难解决问题和用户请求。

2)我们更新了我们的软件(因为新的想法总是来自用户和我们自己),这意味着我可以再次生成所有独立设备,上传它们并让用户再次卸载和安装。讨厌...

我当时已经考虑过切换到Web框架但是存在一些问题。首先,许多用户喜欢使用我的软件离线,例如当他们旅行或没有互联网。其次,我们在某些数据库中有一些数据,这些数据永远不应该放在服务器上。这一切都与专利有关,并且将始终是一个讨论,所以我更喜欢让我的一些程序成为一个独立的桌面应用程序来简化事情。其他人可以在线,没问题。

所以,总的来说,我会喜欢基于浏览器的解决方案,因为每个人都有浏览器。我看到有些人将Django项目作为一个独立的桌面应用程序移植,我发现这不是一个坏主意。关于Camelot,我也很红,但我认为这对数据库来说很重要。 Camelot仅对我的一些工具有用,而这些工具相当于数据库搜索和提取程序。但其他人根本不使用数据库。

有人可以建议我,对我的工具来说什么是好的解决方案?

3 个答案:

答案 0 :(得分:5)

您可以使用例如用于提供UI的烧瓶。

所以只需要正常编写应用程序,但没有GUI(通常你应该将逻辑和GUI分开)。之后使用例如Flask(我非常喜欢这种微框架,但也有其他像Bottle)来编写网站形式的用户界面。您可以在本地运行此网站(这是一行代码:app.run()然后在网址为http://localhost:5000的网络服务器中打开)或在网络服务器上运行用apache或nginx。

答案 1 :(得分:2)

如何在Python中使用Flex?您的界面是可移植的(因为Flex创建了Flash文件);并且您可以使用Python连接接口。

此外,您可以决定(根据您的应用)在Web上部署它们或使用Flex将它们包装为本机可执行文件。

您唯一的挑战是如果您决定打包Windows应用程序,以确保正确打包Python(如果需要)。

答案 2 :(得分:1)

这可能与您的用户使用您的应用程序的方式不符,但一种选择是制作Linux虚拟机(Virtualbox支持最常见的操作系统作为主机)并分发它。

这会给你一个单一的目标来进行开发,如果你查看所选发行版的更新机制(Apt,Yum等)作为奖励你应该能够添加自己的服务器作为来源并拥有VM保持自己更新,用户无需做任何事情。