wi kann ich import selber konstruieren

Ich möchte von einer Datei lesen was für Packages zu importieren sind. Mein versuch: e = "import string" eval(e) produziert einen "Sintax error on line 1" wie kann ich das besser machen? mit freundlichen Grüssen Robert Rottermann Wir wollen Technik mit Menschlichkeit verbinden, um Menschen mit Technik zu erreichen. www.redcor.ch - die website www.redcor.net - zope trainings (and more) _______________________________________________ Python-de maillist - Python-de@starship.python.net http://starship.python.net/mailman/listinfo/python-de

Robert Rottermann wrote:
Ich möchte von einer Datei lesen was für Packages zu importieren sind. Mein versuch:
e = "import string" eval(e)
produziert einen "Sintax error on line 1"
wie kann ich das besser machen?
"Import string" ist eine Anweisung (statement). Eine solche kann nur mit exec() ausgefuehrt werden:
exec('import string') dir() ['__builtins__', '__doc__', '__name__', 'string']
Die Funktion eval() bearbeitet nur Ausdruecke (expressions), welche sich von Anweisungen im wesentlichen dadurch unterscheiden, dass sie einen Wert zurueckgeben:
v = eval('1+2') v 3
Ansonsten gibt es fuer den speziellen Anwendungsfall noch die eingebaute Funktion __import__(), oder einige weitere Funktionen mit aehnlichem Zweck im Standard-Modul "imp". -schorsch -- Georg Mischler -- simulations developer -- schorsch at schorsch.com +schorsch.com+ -- lighting design tools -- http://www.schorsch.com/ _______________________________________________ Python-de maillist - Python-de@starship.python.net http://starship.python.net/mailman/listinfo/python-de

At 10:19 23.10.2002 +0200, you wrote:
Ich möchte von einer Datei lesen was für Packages zu importieren sind. Mein versuch:
e = "import string" eval(e)
produziert einen "Sintax error on line 1"
wie kann ich das besser machen?
das Argument von 'eval' muss ein Ausdruck sein bzw. nach Kompilation einen Ausdruck ergeben. 'import' ist jedoch eine Anweisung. Dafür gibt es 'exec'. Versuch es mal mit exec 'import string' sl, Rainer Rainer Fischbach ______________________________________________________ ECS Engineering Consulting & Solutions GmbH Muehlstrasse 3 D-92318 Neumarkt Phone: +49 (0)9181 - 4764-84 Fax: +49 (0)9181 - 4764-50 Mobile: +49 (0)171 - 41 41 570 e-mail: fischbach@ecs-gmbh.de WWW: http://www.ecs-gmbh.de ______________________________________________________ _______________________________________________ Python-de maillist - Python-de@starship.python.net http://starship.python.net/mailman/listinfo/python-de

Robert Rottermann schrieb:
Ich möchte von einer Datei lesen was für Packages zu importieren sind. Mein versuch:
e = "import string" eval(e)
produziert einen "Sintax error on line 1"
wie kann ich das besser machen?
Was Du da versuchst zu evaluieren, ist ein Statement, kein Ausdruck. Schau mal unter 'exec'. Allerdings bleibt unklar, ob das zur Lösung Deines Problem beitragen wird. Am besten Du beschreibst es noch etwas genauer. - Thilo _______________________________________________ Python-de maillist - Python-de@starship.python.net http://starship.python.net/mailman/listinfo/python-de
participants (4)
-
Georg Mischler
-
Rainer Fischbach
-
Robert Rottermann
-
Thilo Ernst