2013-03-17 23 views
9

ho provato in esecuzione lldb sul mio Mac e ottenere questo all'avvio:lldb errore pitone

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 

Ho provato ad aggiungere la variabile d'ambiente VERSIONER_PYTHON_PREFER_32_BIT=yes ma appare ancora questo errore. Supponevo che lldb stia usando un diverso ambiente Python piuttosto che un host Mac, quindi dove posso apportare le modifiche per far sì che usi la modalità 32 bit? Grazie.

UPDATE:

ho fatto un arch -i386 lldb e funziona in 32-bit. Per farlo funzionare a 64-bit, ho installato una versione a 64 bit di readline python per OS X, ma ho avuto più problemi con le librerie native Python come termios e time. Così ho scaricato il file DMG di installazione Python 2.7.3 64-bit e installato il suo binario; ora lldb funziona a 64 bit, infine, sul mio 10.8 mountain lion. Grazie.

+0

Ho trovato questa domanda dopo aver visto questo errore su 'cordova run ios'. Non sembrava influenzare la build rendendola sul mio dispositivo fisico. – theblang

risposta

3

Sembra che tu abbia installato /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/readline.so ad un certo punto del tuo sistema (non lo vedo sull'installazione di Mac OS X 10.7.5, anche se forse è incluso in 10.8) e che dylib è solo a 32 bit . Puoi confermare con

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

sul tuo sistema. Si potrebbe provare a forzare lldb a funzionare anche in modalità a 32 bit (il binario di distribuzione è costruito a 32-/64-universal), ma raccomanderei invece di rimuovere quel 322 bit solo readline.so dal proprio sistema, a meno che non ne abbia davvero bisogno.

+0

Grazie a @Jason, l'esecuzione di lldb in 32 bit funziona qui. Readline è necessario in LLDB per interpretare i comandi python credo, spostando il file .so ha dato un errore di modulo di importazione non trovato .. – gigasai

+1

Interessante. Ho spinto un po 'di più e sul mio sistema 10.7.5 il framework Python si trova in '/ System/Library/Frameworks/Python.framework' e' readline.so' in quel framework è a 2 vie universali. Continuo a pensare che tu abbia installato un pacchetto in qualche punto nel passato che causa il problema;) ma se lanciare lldb come 32-bit funziona per te, dovrebbe andare bene. –

+12

Sono riuscito a risolvere il problema installando 'six'; 'pip install six'. – Oleander