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

Stefan Schwarzer sschwarzer at sschwarzer.net
So Sep 11 12:38:04 CEST 2011


Hallo Ole,

On 2011-09-11 11:56, Ole Streicher wrote:
> Aber nun stelle Dir mal vor, ich habe das package als Debian-Paket
> packetiert, wobei ich es zusätzlich in ein Unterverzeichnis "mypackage"
> verschoben habe. Damit wandert es bei der Installation standardmäßig in
> das o.g. Verzeichnis/mypackage.
> 
> Jetzt möchte ein Nutzer gerne das package importieren:
> 
> import mypackage
> 
> oder
> 
> from mypackage import common, database
> 
> Der Nutzer /weiß/ doch gar nichts über die Interna des packages, woher
> sollte er also ahnen, dass er seinen PYTHONPATH anpassen muss?

Was meinst du hier mit "Interna" des Pakets? Entweder
"common" und "database" sind Interna, dann muss der Nutzer
gar nichts darüber wissen und sie auch nicht importieren.
Oder sie sind Bestandteil der offiziellen API, dann kann man
aber meiner Meinung nach nicht von "Interna" reden.

> Der
> Pythonpath ist ja eben gedacht für die Dinge, die er selber anpassen
> will. Und woher soll er wissen, dass auf dem konkreten System
> dist-packages/ unter ebenjenem Pfad liegt? Muss jetzt jeder Nutzer seine
> PYTHONPATH pflegen, nur um das unter dem Standardpfad installierte
> package nutzen zu können?

Wenn dist-packages im PYTHONPATH enthalten ist (bzw. dieser
Suchpfad einkompiliert ist), werden Pakete und Module _in_
diesem Verzeichnis gefunden.

import mypackage

sollte dann also problemlos funktionieren.

Viele Grüße
Stefan


Mehr Informationen über die Mailingliste python-de