2010-04-12 77 views
0

在OS X 10.6.3 Snow Leopard的無法在OS X 10.6.3上的Python中導入obj Snow Leopard - libiconv.2.dylib?

 
% python 
Python 2.6.1 (r261:67515, Feb 11 2010, 00:51:29) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import objc 
Traceback (most recent call last): 
    File "", line 1, in 
    File "/Library/Python/2.6/site-packages/pyobjc_core-2.2-py2.6-macosx-10.6-universal.egg/objc/__init__.py", line 22, in 
    _update() 
    File "/Library/Python/2.6/site-packages/pyobjc_core-2.2-py2.6-macosx-10.6-universal.egg/objc/__init__.py", line 19, in _update 
    import _objc 
ImportError: dlopen(/Library/Python/2.6/site-packages/pyobjc_core-2.2-py2.6-macosx-10.6-universal.egg/objc/_objc.so, 2): Library not loaded: /opt/local/lib/libiconv.2.dylib 
    Referenced from: /Library/Python/2.6/site-packages/pyobjc_core-2.2-py2.6-macosx-10.6-universal.egg/objc/_objc.so 
    Reason: Incompatible library version: _objc.so requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0 
>>> 

- 什麼,我需要做什麼?

回答

2

首先,我會嘗試將/Library/Python/2.6/site-packages/pyobjc_core-2.2-py2.6-macosx-10.6-universal.egg/臨時移動到其他位置,然後再次嘗試導入語句。這將使操作系統默認導入操作系統隨附的objc版本(位於/System/Library)。通過在/System/Library使用的版本,它爲我工作:

>>> import objc 
>>> print objc.__file__ 
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC/objc/__init__.pyc 

您也可以考慮移動/opt/local/lib/libiconv.2.dylib到別的地方。它看起來過時了,OS X Snow Leopard在/usr/lib IIRC中有自己的libiconv.2.dylib副本。

+1

libiconv似乎是從MacPorts安裝的。您應該刪除它或使用MacPorts port命令更新它。 – 2010-04-12 19:02:59

+0

@Tamás 謝謝,這工作 – James 2010-04-12 21:50:25

-3

你很可能與操作系統的Python安裝搞砸了,所以你很可能需要重新安裝操作系統。

+2

這不是* * *嚴重的問題! – 2010-04-12 19:03:31

相關問題