iPhone上的PyObjC(iOS5)是否存在问题?

23

有人知道如何在运行iOS 5.0.1的iPhone 4s上修复PyObjC吗?

我的一切正常。
但是在上(已安装所有相同的软件包),PyObjC不能正常工作。

我得到的错误信息是:

File "/private/var/stash/Applications.pwn/MyPyObjC.app/MyPyObjC.py", line 9, in <module>
    import objc
  File "/usr/lib/python2.5/objc/__init__.py", line 17, in <module>
    _update()
  File "/usr/lib/python2.5/objc/__init__.py", line 14, in _update
    import _objc
ImportError: dlopen(/usr/lib/python2.5/lib-dynload/_objc.dylib, 2): Symbol not found: _OBJC_CLASS_$_Object
  Referenced from: /usr/lib/python2.5/lib-dynload/_objc.dylib
  Expected in: /usr/lib/libobjc.A.dylib

(files __init__.py和_objc.dylib存在于两个设备中,文件libobjc.A.dylib在两个设备中都缺失)

同样,两个iPhone安装了相同的软件包(但iOS版本不同)。 (据我所知,Saurik的HelloPython.app也有同样的问题。)

我猜他们在iOS 5中改变了一些东西,而PyObjC文件还没有反映出这种改变(尚未)......

我希望他们能解决它......(我有4-5个基于PyObjC的应用程序不再工作了):-(

在那之前,有什么快速解决的想法吗?


1
我有同样的问题。问题在于Python(或库加载器)试图查找不存在的libobjc.A.dylib。我不熟悉iOS或Unix,但如果库加载器在实际的_objc.dylib(这是本地python模块)中查找,它将能够找到此符号,因为它包含在此软件包中(尝试nm _objc.dylib | grep _OBJC_CLASS_$_)。有什么想法如何实现这一点吗? - Niklas R
@NiklasR 问题在于(旧版)iOS 中不存在文件 /usr/lib/libobjc.A.dylib,但 PyObjC 运行正常! - Gik
1
是的,因为加载 _objc.dylib 的库加载器突然想要加载 libobjc.A.dylib,而这在之前的操作系统版本中不是这样的情况。 - Niklas R
2
你可以尝试联系开发者Ronald Oussoren,他似乎是唯一在开发这个项目的人。不过,在SourceForge上的项目页面看起来已经很久没有更新了。最新的文件是2005年版本1.3.7的。如果使用easy_install,你会得到2.3版本。要获取更近期的版本(2.4 beta),你需要获取子版本库。 - Roland Smith
1
ObjP怎么样?https://bitbucket.org/hsoft/objp 刚刚偶然发现,因为我也需要在iOS(最好的)项目中使用Python。有人用iOS成功地运行了它吗?另请参见:https://dev59.com/vWHVa4cB1Zd3GeqPoqX1 - bijan
显示剩余8条评论
1个回答

1

很抱歉,自iOS 2.0以来,PyObjec已经停止维护。

(顺便说一句,iOS并不是为了程序员/黑客和极客而设计的。如果你想在手机上使用令人惊叹的SL4A API进行编码,请购买一部安卓手机:)


1
感谢您的答案中提供的“main”部分。至于第二部分,不要让我开始!简短回答:当我知道(几乎)最好的平台时,为什么要费心去使用(对我来说是新的)平台呢?(如果它没有被“监禁”,它将配得上“最佳”称号)。(如果有人回答:“为什么不忘记PyObjC,使用XCode和Obj-C这个“真正的东西”呢?”我会接受并检查这个答案...) - Gik
如果你了解Python Android API,我认为你不会推荐在Android上使用Java编码,因为Python更容易、更快、可编译,并且也可以发布到Google Play。如果iOS有类似于SL4A的等效物,那就太好了。 - Arnaud Aliès
也许吧,但我已经“投资”了XCode,并发现了一个非常棒的编码环境(适用于我的)iPhone。毕竟,我对我的iPhone完全满意,不会换成android(就像我不会把我的Mac换成任何Windows电脑一样)。无论如何,这个帖子/问题的目的是为什么PyObjC在iOS5上出了问题(而不是2.0——它在4.2.1之前工作得很好)... - Gik

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