iphone - 在 iPhone 应用程序中嵌入 Python

标签 iphone python xcode

所以这是一个新的千年;苹果已经挥手了;现在在 iPhone(App Store)应用程序中包含 Python 解释器是合法的。

如何做到这一点?所有现有的讨论(毫不奇怪)都是指越狱。 (老问题:Can I write native iPhone apps using Python)

我的目标不是编写一个 PyObjC 应用程序,而是编写一个将 Python 作为嵌入式库运行的常规 ObjC 应用程序。然后 Python 代码将回调 native 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/

相关文章:

Python headless MatplotLib/Pyplot

ios - 项目名称更改后 Xcode 构建错误

ios - Unity 3D 和适用于 iOS 的 Google Cardboard 的 Xcode 构建错误

iphone - 检查 iPhone 中的登录名和密码

iphone - 如何加载存储在静态库中的图像

html - 在 iphone 上单击时显示悬停效果

python - 从特定列创建数据框

python - 为什么 Python 让我在一个范围内定义变量,但在另一个范围内使用它?

ios - Swift iOS 模块未部署到预期的调试目录

iphone - UIViewController 可以包含多个 UIView 吗?