2017-03-11 6 views
1

Ich mag würde ANTLR4 mit Python 2.7 und für diesen Einsatz ich folgendes hat:Python + ANTLR4: Nein namens Modul antlr4

  1. ich das Paket antlr4-4.6-1 auf Arch Linux installiert mit sudo pacman -S antlr4.

  2. Ich schrieb eine MyGrammar.g4 Datei und erzeugen erfolgreich Lexer und Parser-Code mit antlr4 -Dlanguage=Python2 MyGrammar.g4

  3. nun zum Beispiel der Ausführung des erzeugten Lexer Code mit python2 MyGrammarLexer.py Ergebnissen in dem Fehler ImportError: No module named antlr4.

Was könnte das Problem sein? Zu Ihrer Information: Ich habe sowohl Python2 als auch Python3 installiert - ich weiß nicht, ob das irgendwelche Probleme verursachen könnte.

Antwort

1

Sie müssen antlr4 für Python installieren durch pip:

sudo pip install antlr4-python2-runtime 

Wenn Sie nicht pip auf Ihrem System verfügen, installieren Sie es zuerst mit:

sudo pacman -S python2-pip 
+0

Ich habe das versucht, aber leider hat es nicht funktioniert. Nach dem Ausführen des Befehls pip install heißt es: Anforderung bereits erfüllt: antlr4-python2-runtime in/usr/lib/python3.6/site-packages. Es kann der Fall sein, dass pip nicht korrekt für die beiden Python-Versionen funktioniert, aber ich weiß nicht, wie ich das Problem herausfinden soll ... –

+0

Ich habe gerade die antlr4-Dateien von '/usr/lib/python3.6/site kopiert -packages/'to'/usr/lib/python2.7/site-packages /' und das hat das Problem gelöst! –

+0

@ ec-m Vielleicht könntest du 'sudo pip2 install antlr4-python2-runtime' ausprobieren, weil dies' pip' für Python2 aufrufen würde. – kristian

0

Das Problem war, dass antlr4 war nur für Python3 und nicht für Python2 installiert. Ich kopierte einfach die antlr4-Dateien von /usr/lib/python3.6/site-packages/ zu /usr/lib/python2.7/site-packages/ und dies löste das Problem!