5

大约 2 年以来,我一直在使用 wxPython 开发几个小型科学程序,这些程序我分发给了许多同事。我喜欢 wxPython,而且我已经非常熟悉它了,但是有几件事让我抓狂(不是因为 wxPython,实际上我还想继续使用它):

1)我在不同的操作系统上有很多用户。我知道 wxPython 是跨平台的,但我已经没有勇气和时间将我所有的小软件(以后还会有更多)移植到不同的操作系统。特别是我没有使用其中的一些(Windows7、Mac),所以我很难解决问题和用户请求。

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

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

所以,总的来说,我喜欢基于浏览器的解决方案,因为每个人都有浏览器。我看到有些人将 Django 项目移植为独立的桌面应用程序,我觉得这不是一个坏主意。我对 Camelot 也很感兴趣,但我认为这更适用于数据库。Camelot 仅对我的一些工具有用,它们是数据库搜索和提取程序。但其他人根本不使用数据库。

谁能建议我,我的工具有什么好的解决方案?

4

3 回答 3

5

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

因此,只需像往常一样编写应用程序,但没有 GUI(通常你应该无论如何都应该分离逻辑和 GUI)。之后使用例如Flask(我真的很喜欢这个微框架,但也有其他的像Bottle)以网站的形式编写 UI。您可以在本地运行这个网站(这是一行代码:app.run() 然后在网络服务器中使用 URL 打开它http://localhost:5000)或在网络服务器上运行,例如使用 apache 或 nginx。

于 2012-04-23T14:35:15.447 回答
2

在 Python中使用Flex怎么样?您的界面是可移植的(因为 Flex 创建 Flash 文件);你可以使用 Python 来连接接口。

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

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

于 2012-04-23T16:36:46.077 回答
1

This might not fit with how your users use your application but one option would be to make a Linux virtual machine (Virtualbox supports most common operating systems as hosts) and distribute that instead.

This would give you a single target to develop against and, as a bonus if you looked into the update mechanism of your chosen distribution (Apt, Yum etc.) you should be able to add your own server as a source and have the VM keep itself updated without your users needing to do anything.

于 2012-04-23T17:10:45.060 回答