2010-11-06 3 views
7

Ich versuche, eine Codebasis zu portieren, die das "Compiler" -Modul von 2.x über 3.1 verwendet; Ich erhalte einen ImportError um"Compiler" Modul py3k

import compiler 

als das Modul nicht in Python3.x vorhanden ist; Wurde die gleiche Funktionalität in ein anderes Modul innerhalb der Standardbibliothek integriert? Oder wurde es komplett entfernt?

[EDIT] I erfordern ein Äquivalent für compiler.parse.getChildren in Py3k.

+0

Ähnlich, obwohl nicht identisch mit: http://stackoverflow.com/questions/909092/why-is-the-compiler-package-discontinued-in-python-3 –

Antwort

6

According to the docs, das Modul ist seit 2.6 veraltet und wurde in 3.0 vollständig entfernt.

Von PEP 3108:

  • Nachdem sowohl den eingebauten Compiler und die stdlib Paket zu halten ist überflüssig (24).
  • Der vom Compiler erstellte AST ist verfügbar (23).
  • Mechanismus zum Kompilieren von einem AST muss hinzugefügt werden.
5

Es hängt davon ab, was Sie tun möchten. Der abstrakte Syntaxbaum wurde größtenteils in das Modul ast verschoben.

Offenbar kann die eingebaute Funktion compile ein AST-Objekt zu Bytecode kompilieren, das (grob) die restliche Funktionalität des Moduls behandelt. Ich habe das auch noch nie gemacht, YMMV.

Verwandte Themen