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

Thomas 'PointedEars' Lahn PointedEars at web.de
So Sep 11 11:22:38 CEST 2011


Ole Streicher wrote:

> Hallo Gruppe,

Hallo Benutzer,
 
> ich habe ein größeres Python-Paket, welches (neben der spezifischen
> Konfiguration, siehe mein letztes Posting) dummerweise auch so
> generische Namen wie "common", "database" als Modulnamen verwendet.
> 
> Importstatements sehen daher etwa so aus:
> 
> from common.config.Profile import profiles
> from database.ps2.Database import database
> 
> usw.
> 
> Sowas lässt sich natürlich nicht so ohne weiteres z.B. in ein
> Python-Repository einpflegen, weil es mit jedem anderen Paket, welches
> so frech ist, "common" und "database" zu verwenden, clashen würde.

Unsinn.
 
> Daher wäre es gut, wenn man bei der Installation einen generischen
> Prefix voranstellen könnte, so dass die Module etwa lauten
> 
> mypackage.common
> mypackage.database
> 
> Erste Frage: wie macht man das?

Verzeichnis `mypackage' erstellen.

> Wenn das geschafft ist, besteht das Problem, dass sowohl Userprogramme
> als auch der Code innerhalb der Pakete sich untereinander mit "common"
> und "database" referenziert und damit wohl nicht mehr lauffähig
> wäre.

Unsinn.  man PYTHONPATH

> Wie bringe ich ihm dann bei, dass innerhalb der Pakete automatisch
> ein "mypackage" hinzugefügt wird? Und wie kann man dann in einem
> Programm global sagen, dass "mypackage" im Suchpfad auftauchen soll?

man PYTHONPATH

> Normalerweise wäre das ja ein
> 
> from mypackage import *
> 
> aber wohin kommt das, damit ich es nicht in jede Datei einzeln packen
> muss?

Nirgendwohin.

RTFM: <http://docs.python.org/release/3.2.2/reference/simple_stmts.html#the-
import-statement>

<http://www.tty1.net/smart-questions_de.html>

-- 
PointedEars

Please do not Cc: me. / Bitte keine Kopien per E-Mail.


Mehr Informationen über die Mailingliste python-de