【问题标题】:Where to get Python ANTLR package to use StringTemplate?在哪里获得 Python ANTLR 包以使用 StringTemplate?
【发布时间】:2011-03-04 20:27:55
【问题描述】:

我想做一些代码生成,而 StringTemplate 看起来是一个很好的工具。我从 PyPi 轻松安装了 stringtemplate3,但是当我尝试导入它时,我得到:

ImportError: No module named antlr

我对此感到困惑,因为我认为 ANTLR 依赖于 StringTemplate(如网站所述),而不是相反。无论如何,我找不到正确的包来解决这个问题。安装 antlr_python_runtime 没有帮助。

有什么提示吗?

【问题讨论】:

  • 我相信 Antlr 和 ST 具有循环依赖关系,但其中一个依赖于另一个的早期版本。即如果 ST 4 依赖于 Antlr 3,则 Antlr 3 依赖于 ST 3 而不是 4。

标签: python antlr stringtemplate


【解决方案1】:

您需要安装python-antlr 软件包才能使用stringtemplate3。在 Ubuntu 上安装示例:

% sudo aptitude install python-antlr
% virtualenv ~/virt
% . ~/virt/bin/activate
(virt)~% easy_install stringtemplate3
(virt)~% python -c 'import stringtemplate3'

FWIW 这个包在 Macports 上被命名为 py26-antlr3(不确定你使用的是哪个平台/包管理器)。

【讨论】:

  • 嗯,就我的目的而言,我需要跨平台且易于安装的解决方案。我猜 stringtemplate 不是我的解决方案。谢谢。
  • 对我不起作用。 stringtemplate3 不使用 antlr3,它使用 antlr2.7~ 。我必须通过下载 antlr2.org/download/antlr-2.7.7.tar.gz 、解压缩、导航到 antlr-2.7.7/lib/python 并运行 python setup.py install 来手动安装它。之后,就满足了依赖。
  • @I82Much 的提示对我有用。我实际上是想让 antlr3 运行。我得到了antlr-3.1.3.jar,创建了一个virtualenv,按照python setup.py install 安装了antlr_python_runtime-3.1.3.tar.gz,然后pip install stringtemplate3,最后安装了antlr2.7,如上所述。疯狂的依赖链。
【解决方案2】:

我也遇到了同样的问题,打包了antlr python库:你可以pip install git+git://github.com/kynan/antlr.git#egg=antlr来安装。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多