“编译器”模块py3k

时间:2010-11-06 08:30:54

标签: python python-3.x

我正在尝试将使用2.x的“编译器”模块的代码库移植到3.1;我在

处得到了一个ImportError
import compiler

因为Python3.x中不存在该模块;是否已将相同的功能集成到标准库中的另一个模块中? 还是已经彻底删除了?

[编辑] 我在Py3k中需要等效compiler.parse.getChildren

2 个答案:

答案 0 :(得分:7)

According to the docs,该模块自2.6以来已被弃用,并已在3.0中完全删除。

来自PEP 3108

  • 必须维护内置编译器和stdlib包是多余的(24)
  • 编译器创建的AST可用(23)
  • 需要添加从AST编译的机制。

答案 1 :(得分:5)

这取决于你想做什么。抽象语法树的内容已基本上被移入ast模块。

显然,compile内置函数可以将AST对象编译为字节码,该字节码(粗略地)处理compiler模块的剩余功能。我也从来没有这样做YMMV。