"编译器"模块py3k

8 python python-3.x

我试图移植一个代码库,它使用2.x以上的"编译器"模块到3.1; 我得到一个ImportError

import compiler
Run Code Online (Sandbox Code Playgroud)

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

[编辑]compiler.parse.getChildren在Py3k中需要一个等价物.

Tim*_*ker 7

根据文档,该模块自2.6以来已被弃用,并已在3.0中完全删除.

PEP 3108:

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


aar*_*ing 5

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

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