【问题标题】:Python Desktop Applications [closed]Python桌面应用程序[关闭]
【发布时间】:2012-05-04 04:06:18
【问题描述】:

我使用 wxPython 大约有 2 年的时间了,我将它们分发给许多同事的几个小型科学程序。我喜欢 wxPython,而且我已经很熟悉了,但是很少有让我抓狂的东西(不是因为 wxPython,其实我还想继续使用它):

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

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

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

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

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

【问题讨论】:

    标签: python django desktop-application web-frameworks


    【解决方案1】:

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

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

    【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      这可能不适合您的用户如何使用您的应用程序,但一种选择是制作 Linux 虚拟机(Virtualbox 支持大多数常见的操作系统作为主机)并分发它。

      这将为您提供一个开发目标,作为奖励,如果您查看所选发行版(Apt、Yum 等)的更新机制,您应该能够添加自己的服务器作为源并拥有VM 会自行更新,您的用户无需执行任何操作。

      【讨论】:

      • 这是一个有趣的想法,我什至发现了与我使用虚拟机的工具类似的东西 (dnalinux.com)。 GUI是如何制作的?我可以使用我用 wxPython 编写的旧代码吗?
      猜你喜欢
      • 1970-01-01
      • 2011-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-03
      • 2011-08-04
      • 2011-10-19
      • 2019-03-22
      相关资源
      最近更新 更多