Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iPhone应用程序中嵌入Python_Iphone_Python_Xcode - Fatal编程技术网

在iPhone应用程序中嵌入Python

在iPhone应用程序中嵌入Python,iphone,python,xcode,Iphone,Python,Xcode,因此,这是一个新的千年;苹果已经挥了挥手;现在,在iPhone(应用商店)应用程序中包含Python解释器是合法的 一个人如何着手做这件事?所有现有的讨论(毫不奇怪)都涉及越狱。(老问题:) 我的目标不是编写一个PyObjC应用程序,而是编写一个将Python作为嵌入式库运行的常规ObjC应用程序。Python代码随后将调用本机Cocoa代码。这是“控制逻辑是Python代码”模式 有没有在XCode中构建Python的指南,以便我的iPhone应用程序可以链接到它?最好是精简的Python,因

因此,这是一个新的千年;苹果已经挥了挥手;现在,在iPhone(应用商店)应用程序中包含Python解释器是合法的

一个人如何着手做这件事?所有现有的讨论(毫不奇怪)都涉及越狱。(老问题:)

我的目标不是编写一个PyObjC应用程序,而是编写一个将Python作为嵌入式库运行的常规ObjC应用程序。Python代码随后将调用本机Cocoa代码。这是“控制逻辑是Python代码”模式

有没有在XCode中构建Python的指南,以便我的iPhone应用程序可以链接到它?最好是精简的Python,因为我不需要90%的标准库


我大概能理解线程和Python扩展API;我在MacOS上做过。但是只使用命令行编译器,而不是XCode。

如何构建Python并不重要——例如,您不需要在XCode中构建Python——但重要的是构建的产品

也就是说,您需要构建类似libPython.a的东西,它可以静态链接到您的应用程序中。一旦你有了一个.a,它就可以被添加到你的应用程序的Xcode项目中,从那里,它将像你的应用程序的其余部分一样被链接和签名

IIRC(我已经有一段时间没有手工构建python了)如果配置正确,现成的python将构建一个libPython.a(和一堆其他库)

当然,您的第二个问题将是从您的86盒中交叉编译python for ARM。Python是一个基于autoconf的项目,而autoconf对于交叉编译来说是个麻烦

正如您正确地指出的,将其变小将是至关重要的

毫不奇怪,你不是第一个想这么做的人,但不是iOS。Python已经被压缩到比那些运行iOS的设备功能要差得多的设备中。我在谷歌搜索的时候发现了一条有很多链接的帖子;它


此外,您可能希望加入该列表。虽然您的目标不是基于PyObjC的应用程序(顺便说一句,这是一个好主意——PyObjC在实现对iOS友好之前还有很长的路要走),但PyObjC社区一直在讨论这一点,罗纳德可能是这一特定领域最有知识的人。注意,在移植PyObjC之前,PyObjC必须解决iOS上的嵌入式Python问题。它们的先决条件是您的需求,可以说。

我在github上编写了一个非常粗略的脚本,用于获取和构建iPhone和模拟器的python2.6.5

正在进行的工作

近2年后,有点令人沮丧的更新:(摘自github上的自述)

这个项目从未真正让python在iPhone上运行到我的电脑上 满意,我不建议在任何严肃的项目中使用它 现阶段

最值得注意的是缺少pyobjc支持(事实证明这是非常重要的) 更难移植到iPhone,因为它依赖于更特定的平台 代码)

还缺少静态编译模块的能力(所有模块都是 目前构建为dylibs,用于开发,但对我的 应用商店中不允许使用知识)

在这一点上,该项目主要是作为 任何比我更聪明的人,只要他愿意并且能够解决上述问题

我真希望完全用Python编写应用程序是切实可行的,但是 在这一点上,这似乎是不可能的


我也开始了这样一个项目。它自带了自己的简化编译脚本,因此无需为了获得交叉编译的静态库而乱搞autoconf。它能够使用一些通用模块构建一个完全没有依赖关系的Python静态库。它应该易于扩展


谢谢您的链接。(我在Sharp Zaurus上使用Python来完成这个项目的早期版本,但那是Python 1.6,其他人完成了打包…)我曾经将Python移植到索尼的PSP上;也许颠覆历史会对你有所帮助。但这并不完全是一个答案。这里:谢谢!我有几天没有机会看它,但我肯定会很快尝试。如果
pyobjc
很难编译,那么使用
ctypes
是否可行?在这种情况下,答案可能是一个线索(意识到这只是一项艰巨而痛苦的工作的开始,但仍然如此)。它确实可以编译,但缺少一些内置模块,如“-collections”。有什么想法吗?我没有包括所有的原生C模块。只是修改一下。看起来过时了。。。仅适用于iOS 4.3?你能记录下如何在更新的版本中使用它吗?@ArtOfWarfare:有一段时间没有使用它了,为什么不能在更新的版本中使用?如果您发现任何问题,可能会在GitHub上生成错误报告。