Actualicé vim
con HomeBrew a la versión 7.4.1952 en OS X 10.11.6. Instaló python 2 como un paquete de dependencia (las partes resumidas de la salida se muestran mediante ...
):
$ 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)
Este es mi $PATH
shell en zsh:
/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
¿Cómo puedo solucionar estos errores?
Instalé six
el módulo con pip
el administrador 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)
La Apple lldb
(de /usr/bin/lldb
) espera y exige /usr/bin/python
. Desafortunadamente, no usa esta ruta absoluta para invocarlo, sino solo python
.
Por lo tanto, con un Python 2 también instalado por Homebrew en el interior /usr/local/bin
que está en la parte frontal de su PATH
Apple lldb
obtiene un Python 2 inesperado que puede introducir errores como falta de paquetes esperados o peor.
Lo seguro es pues llamar lldb
con un diferente PATH
:
$ PATH=/usr/bin:$PATH lldb ...
O incluso configurar un script de alias o contenedor, por ejemplo:
$ alias lldb='PATH=/usr/bin:$PATH lldb'