我可以在AIR应用程序中“嵌入”Python后端吗?

时间:2009-09-21 17:25:44

标签: python flex air

我试图找出是否有办法将Python后端嵌入到AIR应用程序中?我希望采用类似于概述here的方法来实现我的应用程序的业务逻辑,但另外,我想为用户提供他们可以加载的单个二进制文件。我不希望用户必须启动单独的服务器进程才能使其工作。这在某种程度上是可能还是我运气不好?

3 个答案:

答案 0 :(得分:1)

可能。我们正在使用J2EE服务器端,它使用SOAP Web服务与前端的AIR应用程序进行通信。你应该能够做到这一点,因为肥皂并不关心哪种技术位于它的任何一侧。

您始终可以从单个二进制文件启动应用程序,该二进制文件首先启动服务器,然后启动客户端,如果两者都应该位于用户系统上。此外,如果您愿意,它还可以让您灵活地在以后拥有更加面向服务的模型。不知道你的应用程序做了什么,很难知道这是否有意义。

为了设置SOAP webservices的python端,这里是diveintopython article的有用链接。然后,如果您的服务器使用wsdl运行FlexBuilder can generate the AIR side of the webservices for you

答案 1 :(得分:1)

您无法在AIR应用程序中嵌入Python服务器。所以基本上你运气不好。

最简单的解决方案可能是在所有用户可以从其AIR应用程序连接到的中央位置运行服务器。这意味着所有/大部分数据都将在您的服务器上,而不是在用户计算机上,我不知道这是一个大问题,但我想是的。

此外,根据您的目标系统,您可以根据AIR创建自己想要的程序(完全)。您可以从Flash CS3 / 4为Windows和osx生成可执行文件,或者您可以使用提供更多功能的特殊(商业)可执行文件制作器。将这个exe和你的python程序包装在一个启动两者的元可执行文件中应该可以完成一些工作。当然,如果在这种情况下使用AIR安装程序等,您将无法获益。

答案 2 :(得分:1)

好的,所以既然似乎不可能这样做,我想出了一个似乎适用于我想要的替代品。

我没有尝试将Python嵌入到AIR中,而是采用了相反的方式:我使用PyInstaller将我的Python代码构建为独立的可执行文件,并将AIR应用程序捆绑为资源。然后,Python代码启动它的Web服务器并触发AIR应用程序,然后可以根据需要连接到(本地)远程服务。