没有名为 antlr4 的模块

No module named antlr4

我想在 Python 2.7 中使用 ANTLR4,为此我做了以下操作:

  1. 我用 sudo pacman -S antlr4 在 Arch Linux 上安装了软件包 antlr4-4.6-1

  2. 我写了一个 MyGrammar.g4 文件并使用 antlr4 -Dlanguage=Python2 MyGrammar.g4

  3. 成功生成了 Lexer 和 Parser 代码
  4. 现在使用 python2 MyGrammarLexer.py 执行例如生成的 Lexer 代码会导致错误 ImportError: No module named antlr4

可能是什么问题?仅供参考:我同时安装了 Python2 和 Python3 - 我不知道这是否会造成任何问题。

您需要为 python 通过 pip 安装 antlr4:

sudo pip install antlr4-python2-runtime

如果您的系统上没有 pip,请先安装它:

sudo pacman -S python2-pip

问题是 antlr4 只为 Python3 安装,而不是 Python2。我只是将 antlr4 文件从 /usr/lib/python3.6/site-packages/ 复制到 /usr/lib/python2.7/site-packages/,这解决了问题!

尝试:

pip install antlr4-python2-runtime

或:

python -m pip install antlr4-python2-runtime