Re: [Python-de] Globaler "prefix" o.ae.

"Diez B. Roggisch" <deets@web.de> writes:
Python kann nicht mehr als das, was dir hier praesentiert wurde. Das bescheidene "Design" des Original-Paketes es verhindert, die eigentliche Ursache des Problems zu beseitigen. Und da du aussliesst daran was aendern zu koennen, wirst du dich schon entscheiden muessen, welchen Tod du stirbst..
Das wird mir auch langsam klar (obwohl ich immer noch die Hoffnung auf einen eigenen Loader/Finder habe...) Ich tendiere derzeit dazu, den Quelltext zu patchen. Gibt es Pythonpakete, die das erleichtern, ohne dass ich die verschiedenen Statements als regexp selber bauen muss? exec("from common.%s import %s" % (pkg, pkg)) wird man damit leider nicht fangen, aber glücklicherweise sind diese Statements dann doch abzählbar. Und da ließe sich sicher erreichen, dass diese Stellen Upstream durch entsprechende __import__()-Aufrufe ersetzt werden (die dann wieder durch einen Pythonparser gefunden werden). Viele Grüße Ole

Am 13.09.2011 11:08, schrieb Ole Streicher:
Das wird mir auch langsam klar (obwohl ich immer noch die Hoffnung auf einen eigenen Loader/Finder habe...)
Verabschiede Dich von dieser Idee.
Gibt es Pythonpakete, die das erleichtern, ohne dass ich die verschiedenen Statements als regexp selber bauen muss?
Ja, mit lib2to3 kann man Python-Programm recht gut manipulieren. Ich rate Dir: Wenn die Mindest-Voraussetzungen der Software es zulassen, dann stelle um auf relative Imports. Damit kann man die Module wie bisher verwenden und dennoch in das Package `mypackage` verschieben.
exec("from common.%s import %s" % (pkg, pkg))
Auch das könnte man mit lib2to3 erschlagen, indem Du nach allen exec-Aufrufen suchst.
Statements dann doch abzählbar. Und da ließe sich sicher erreichen, dass diese Stellen Upstream durch entsprechende __import__()-Aufrufe ersetzt werden (die dann wieder durch einen Pythonparser gefunden werden).
Dies Änderung würde der Qualität gut tun, dann exec() soll man vermeiden. Für Deine Umbarebiten ist es aber egal, ob Du nach exec oder __import__ suchst. -- Schönen Gruß - Regards Hartmut Goebel Dipl.-Informatiker (univ.), CISSP, CSSLP Goebel Consult Spezialist für IT-Sicherheit in komplexen Umgebungen http://www.goebel-consult.de Monatliche Kolumne: http://www.cissp-gefluester.de/ Goebel Consult ist Mitglied bei http://www.7-it.de
participants (2)
-
Hartmut Goebel
-
Ole Streicher