使用Python编写跨平台应用程序,既可以在iOS上运行,也可以在Android上运行吗?

91

是否可以使用Python编写跨平台应用程序,支持iOS和Android


1
duplicate? - keyser
@keyser,我对那个问题的选定答案并不满意,我认为它可以被使用,为了确认我提出了那个问题。 - user1404932
这个有改变吗? - johnny
在2018年,使用pysidepyqtdeploy作为可行的选项吗? - desertSniper87
6个回答

85
一个选项是kivy:它是一个很酷的跨平台Python框架,适用于Android、Win7、Linux、MacOSX和iOS。
更新:kivy项目每天都在增长,现在也支持树莓派。

30

对于Android,谷歌提供了一种称为ASE(Android Scripting Environment)的东西,允许脚本语言(包括Python)在Android上运行。更多细节请点击此处

对于iOS,可能要复杂得多(我建议检查最新版本的iOS SDK协议以了解法律的当前状态 - 苹果公司往往会定期允许和禁止此类应用)。在技术方面,您可能需要在Python和Objective C之间进行接口,并进行一些巫术来静态链接Python所需的所有库; 完整详情请点击此处。 另一种iOS Python开发的方法是将Python解释器嵌入到应用程序中,并随其分发Python脚本(以遵守Apple规则)。在这种情况下,您的Python应用程序将是一个打包了您的脚本并自动运行的Python解释器。

第二个选项是使用Kivy框架(kivy.org) - 这是一个用Python编写触摸友好的应用程序并针对不同平台打包的框架。它已经支持Android有一段时间了,最近还添加了iOS支持。


31
这正是Kivy(http://kivy.org/)的目标——它是一个框架,可以使用Python编写触摸友好型应用程序,并将其打包到不同的平台上。它已经支持Android一段时间了,并最近添加了iOS支持。 - Raheel
Kivy目前还不支持Python 3.3+到iOS的转换。 - Iorek

5

编写GUI应用程序,您可以使用Toga库, 然后使用briefcase 将其打包成Android和/或iOS应用程序(或Windows,Linux,macOS等)。

注意:该项目仍处于alpha状态,但正在快速发展中。


3
如 @piertoni 所提到的,BeeWare 使得能够用Python编写原生iOS和Android应用程序。最初的回答:BeeWare可以让你用Python编写本机iOS和Android应用程序。

2
您可以尝试结合。Brython维基描述了使用Brython编写Android应用程序的方法(如何使用Brython编写Android应用程序),这可能为使用Cordova也提供了必要的信息。我还没有测试过,但听起来很有前途。但是,您应该知道,由于其性质,Brython无法支持x86编译的软件包,例如OpenCV(请参见此处)。另一方面,如果您对JavaScript / HTML5有所了解,则可以使用WebView本机函数,例如http://www.brython.info/gallery/three.html

0

FireMonkey (FMX)

FMX是一个相当新的框架,用于使用Python开发跨平台应用程序,但我可以诚实地说,它是目前可用的最好的框架!

它比所有其他GUI Python框架都要好得多。使用FMX,您可以为Windows、MacOS、Android和Linux开发单个代码库。

iOS目前尚未支持,但计划在不久的将来支持。

我认为FMX值得关注。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接