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

Ole Streicher ole-usenet-spam at gmx.net
Mo Sep 12 10:39:07 CEST 2011


Ingrid Streicher <ole-usenet-spam at gmx.net> writes:
> Ich habe ein zwei Pakete "common", "database", die u.a. aus den
> Modulen "BaseObject" und "DbObject" bestehen: [...]  daraus will ich
> etwas (ohne Änderung der Quelltexte) machen, bei dem ich sagen kann
>
> from mypackage.database.DbObject import DbObject
>
> und zwar ohne die Orginaldateien (BaseObject.py, DbObject.py)
> anzufassen. Und ohne den Nutzer einer Standardinstallation von mypackage
> einen eigenen Classpath aufnötigen zu müssen. 

Folgendes scheint zu funktionieren:

mypackage.__init__.py:
---------8<----------------------------
import os
import sys
sys.path.insert(0, os.path.dirname(__file__))
try:
    import common
    import database
finally:
    sys.path.remove(os.path.dirname(__file__))
    del os
    del sys
---------8<----------------------------

Welcher Nebenwirkungen muss ich mir bei dieser Lösung gegenwärtig sein? 

Viele Grüße

Ole


Mehr Informationen über die Mailingliste python-de