将pyobjc 2.2降级到pyobjc 2.0
我不小心用 easy-install 安装了 pyobjc 2.2,这导致了一些问题:当我尝试导入它时,出现了错误
Incompatible library version: _objc.so requires version 10.0.0 or later, but libxml2.2.dylib provides version 9.0.0
不过我并不想修复这个错误,我只想要回我的 pyobjc 2.0。我尝试过卸载 pyobjc 2.2,然后重新安装 Python,还尝试从 svn 主干构建 2.0(但出现了错误 lipo: can't figure out the architecture of [random filename].out)
我想一定有好的方法可以解决这个问题,但我想不起来了。任何建议都非常感谢。
编辑:Python 2.6 和 OSX 10.5
2 个回答
如果你在使用苹果自带的 Python 2.5 版本,系统是 10.5 Leopard,并且这个版本里已经内置了 PyObjC 2.0,那么降级到之前的版本最简单的方法就是去删除它的 site-packages 目录下的 2.2 版本,路径是 /Library/Python/2.5/site-packages
。不过在这之前,你需要先运行以下命令:
easy_install -m pyobjc==2.2
这个命令会编辑那个目录里的 easy-install.pth
文件,或者你也可以自己手动编辑这个文件,删除关于 PyObjC 2.2 的那一行。这样就可以恢复到苹果自带的版本了,这个版本是安装在其他地方的。
如果你使用的是其他版本的 Python,并且是自己安装的 PyObjC,你仍然可以尝试用 easy_install 来恢复到之前的版本,因为通常情况下,easy_install 在你升级时不会删除之前的版本。你可以试试:
easy_install pyobjc==2.0
如果这样还不行,你可能需要去 PyObjC 的子版本库,下载 2.0 版本的代码,然后从那里重新安装:
svn co http://svn.red-bean.com/pyobjc/branches/pyobjc-20x-branch/
我搞明白了。2.5版本的pyobjc库在这个路径下:/System/Library/Frameworks/Python.framework/Versions/2.5/...
而安装适用于python 2.6的pyobjc的命令是
sudo port install py26-pyobjc2
无论如何,还是谢谢你的帮助!