Um J.F. Sebastians Ratschlag zu unterstreichen: "eval" und sogar die "Compiler"-Lösungen können für subtile Sicherheitslücken offen sein. Wie vertrauenswürdig ist die Eingabe? Mit 'compiler' kann man zumindest Dinge wie getattr-Lookups aus dem AST herausfiltern, aber ich habe festgestellt, dass es einfacher ist, PLY oder pyparsing für diese Art von Dingen zu verwenden, als das Ergebnis zu sichern, indem man Python aushelfen lässt.
Außerdem ist der Begriff "Compiler" unhandlich und schwer zu verwenden. Es ist veraltet und wird in 3.0 entfernt. Sie sollten das Modul "ast" verwenden (hinzugefügt in 2.6, verfügbar in 2.5 als "_ast").