2013-03-17 239 views
9

我試圖運行在我的Mac lldb,並在啓動時得到這樣的:LLDB蟒蛇錯誤

Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
    File "/System/Library/PrivateFrameworks/LLDB.framework/Versions/A/Resources/Python/lldb/embedded_interpreter.py", line 1, in <module> 
    import readline 
ImportError: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/readline.so: no appropriate 64-bit architecture (see "man python" for running in 32-bit mode) 
Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
NameError: name 'run_one_line' is not defined 
Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
NameError: name 'run_one_line' is not defined 
Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
NameError: name 'run_one_line' is not defined 

我嘗試添加環境變量VERSIONER_PYTHON_PREFER_32_BIT=yes但這依然出現。我認爲lldb使用的是不同於Mac主機的python環境,因此我在哪裏進行更改以使其使用32位模式?謝謝。

UPDATE:

我做了一個arch -i386 lldb,它在32位的作品。爲了使它在64位下工作,我爲OS X安裝了一個64位版本的python readline,但在使用本地python庫(如termiostime)時遇到了更多問題。於是我下載了python 2.7.3 64位安裝程序DMG文件並安裝了它的二進制文件;現在lldb最終在我的10.8山獅身上以64位工作。謝謝。

+0

在'cordova run ios'上看到此錯誤後,我發現此問題。它似乎沒有影響到構建到我的物理設備的構建。 – theblang 2016-07-12 21:40:15

回答

3

它看起來像你在你係統上的某個位置安裝了/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/readline.so(我沒有在我的Mac OS X 10.7.5安裝中看到它,雖然它可能包含在10.8中),而且這個dylib只是建立在32位。您可以通過

file /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/readline.so 

在您的系統上。你可以嘗試強制lldb也以32位模式運行(分佈二進制文件是32/64通用的),但是我建議從系統中刪除32位只有readline.so,除非你真的需要它。

+0

謝謝@Jason,在這裏運行32位的lldb。 ReadLine需要在LLDB解釋python命令我猜,移動.so文件給了一個導入模塊找不到錯誤.. – gigasai 2013-03-18 01:58:21

+1

有趣。我多說了一點,在我的10.7.5系統中,Python框架位於'/ System/Library/Frameworks/Python.framework'中,該框架中的'readline.so'是雙向通用的。我仍然認爲你在過去的某個時候安裝了一個包,導致了這個問題;)但是如果你發佈32位的lldb,它應該沒問題。 – 2013-03-18 02:34:50

+12

我設法通過安裝'six'來解決這個問題; 'pip安裝六'。 – Oleander 2016-07-20 01:05:26