2012-04-23 251 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