4 votos

¿Por qué la ejecución de lldb con Python 2 instalado produce ImportError y NameErrors?

Yo había actualizado vim con HomeBrew a la versión 7.4.1952 en OS X 10.11.6. Se instaló Python 2 como un paquete de dependencia (partes resumidas de la salida se muestra por ... ):

$ brew upgrade vim
...
==> Installing vim dependency: python
   /usr/local/Cellar/python/2.7.11: 4,949 files, 66.6M
...

Ahora cuando intento ejecutar lldb produce ImportError y NameErrors:

$ lldb myExecutableFile
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Resources/Python/lldb/__init__.py", line 98, in <module>
    import six
ImportError: No module named six
(lldb) target create "myExecutableFile"
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
...
Current executable set to 'myExecutableFile' (x86_64).
(lldb)

Esta es mi $PATH en el shell zsh:

/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

¿Cómo puedo solucionar estos errores?

4voto

Hamid Rohani Puntos 359

He instalado six módulo con pip El gestor de paquetes de Python y resuelve el problema:

$ pip install six
Collecting six
  Using cached six-1.10.0-py2.py3-none-any.whl
Installing collected packages: six
Successfully installed six-1.10.0

$ lldb myExecutableFile
(lldb) target create "myExecutableFile"
Current executable set to 'myExecutableFile' (x86_64).
(lldb)

1voto

maxschlepzig Puntos 126

La Apple lldb (de /usr/bin/lldb ) espera y requiere /usr/bin/python . Lamentablemente, no utiliza esta ruta absoluta para invocarla, sino simplemente python .

Así, con un Python 2 también instalado por Homebrew dentro de /usr/local/bin que está en la parte delantera de su PATH la Apple lldb obtiene un inesperado Python 2 que puede introducir errores como la falta de paquetes esperados o algo peor.

Lo más seguro es, pues, llamar a lldb con una PATH :

$ PATH=/usr/bin:$PATH lldb ...

O incluso configurar un alias o wrapper script, por ejemplo

$ alias lldb='PATH=/usr/bin:$PATH lldb'

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X