4 votes

Pourquoi l'exécution de lldb avec HomeBrew Python 2 installé produit des ImportError et NameErrors ?

J'avais mis à jour vim avec HomeBrew à la version 7.4.1952 sur OS X 10.11.6. Il a installé Python 2 en tant que paquet dépendant (le résumé de la sortie est indiqué par ... ) :

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

Maintenant, quand j'essaie d'exécuter lldb il produit ImportError et 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)

C'est mon $PATH dans le shell zsh :

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

Comment puis-je résoudre ces erreurs ?

4voto

Hamid Rouhani Points 1421

J'ai installé six module avec pip Le gestionnaire de paquets Python et cela résout le problème :

$ 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 Points 653

La Apple lldb (de /usr/bin/lldb ) attend et exige /usr/bin/python . Malheureusement, il n'utilise pas ce chemin absolu pour l'invoquer, mais juste python .

Ainsi, avec un Python 2 également installé par Homebrew à l'intérieur de /usr/local/bin qui se trouve à l'avant de votre PATH la Apple lldb obtient un Python 2 inattendu qui peut introduire des erreurs comme des paquets attendus manquants ou pire.

La chose la plus sûre est donc d'appeler lldb avec un autre PATH :

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

Ou même configurer un alias ou un wrapper script, par ex :

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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X