我想制作一个Cocoa OS X应用程序。我更喜欢在它的核心使用python脚本。但是,不确定它有多安全。我知道python渗透率非常高,但是版本冲突和迁移呢?是否值得将整个python运行时捆绑到OS X应用程序中?
感谢。
答案 0 :(得分:2)
您应该使用py2app。它会将Python可执行文件,您需要的所有库以及您的脚本捆绑到一个可执行文件中。然后,您可以将其他可执行文件(例如您的Objective-C部件)添加到该应用程序包中。
答案 1 :(得分:2)
所以....这真正归结为跨版本的兼容性问题,脚本语言在维护方面非常糟糕。 Python比大多数都好,但它仍然存在很大问题。
出于这个原因,Apple已经通常在系统上发布了旧版本的解释器。因此,如果您确实依赖系统安装的Python,我建议锁定特定版本。即使用/usr/bin/python2.6
而非通用/usr/bin/python
。
另一种选择就是你说的;将python解释器和任何所需的资源捆绑到您的应用程序中。这有点痛苦,但它解决了兼容性问题。或多或少;事实上,Python实际上是操作系统的接口,因此非常大,有可能突破任何版本。但是,你可以做的不多。
另一种可能性是走@kindall提出的路线;使用PyObjC并完全或大部分在Python中实现您的Cocoa应用程序。工作良好。坦白说,由于大规模脚本应用程序的维护/调试问题令人讨厌,所以已经完成了,并且不会再这样做了。
作为替代方案,您可能希望使用Lua(http://www.lua.org)进行调查,因为它非常适合嵌入到应用程序中。 Lua有一个很小的解释器,您可以完全控制在运行时可以访问您的应用程序的哪些功能。例如,“魔兽世界”的UI主要是通过Lua将一组快速UI原语粘合在一起来实现的。在客户端完全可定制,当您考虑安全隐患时,这真是令人印象深刻。