所以这是一个新的千年;苹果挥了挥手;现在在 iPhone (App Store) 应用程序中包含 Python 解释器是合法的。
怎么做呢?所有现有的讨论(不出所料)都是指越狱。 (老问题:Can I write native iPhone apps using Python)
我的目标不是编写 PyObjC 应用程序,而是编写一个将 Python 作为嵌入式库运行的常规 ObjC 应用程序。然后 Python 代码将回调到本地 Cocoa 代码。这是“控制逻辑是 Python 代码”模式。
是否有在 XCode 中构建 Python 的指南,以便我的 iPhone 应用程序可以链接它?最好是精简的 Python,因为我不需要 90% 的标准库。
我大概可以弄清楚线程和 Python 扩展 API;我已经在 MacOS 上做到了。但只使用命令行编译器,而不是 XCode。
最佳答案
您如何构建 Python 并不重要——例如,您不需要在 Xcode 中构建它——但重要的是该构建的产品。
也就是说,您将需要构建类似 libPython.a 之类的东西,它可以静态链接到您的应用程序中。一旦您有了 .a,就可以将其添加到您的应用程序的 Xcode 项目中,并且从那里开始,它将像应用程序的其余部分一样链接和签名。
IIRC(自从我手工构建 python 已经有一段时间了)开箱即用的 python 将构建一个 libPython.a(和一堆其他库),如果你配置正确的话。
当然,您的第二个问题将是从您的 86 机器上为 ARM 交叉编译 python。 Python 是一个基于 autoconf 的项目,而 autoconf 是交叉编译的麻烦。
正如您正确指出的那样,让它变小将是至关重要的。
毫不奇怪,您不是第一个想要这样做的人,但对于 iOS 而言并非如此。 Python 已被挤入设备中,其功能远不如运行 iOS 的设备。我在谷歌搜索时发现了一个带有一堆链接的线程;它 might be useful 。
此外,您可能想加入 pyobjc-dev 列表。虽然您的目标不是基于 PyObjC 的应用程序(顺便说一句,这是一个好主意 - PyObjC 在对 iOS 友好之前还有很长的路要走),但 PyObjC 社区一直在讨论这个问题,Ronald,任何人,可能是这个特定领域知识最渊博的人。请注意,在移植 PyObjC 之前,PyObjC 必须解决 iOS 上的嵌入式 Python 问题。他们的先决条件是您的要求,就像它一样。
关于iphone - 在 iPhone 应用程序中嵌入 Python,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3691655/