Zugriff auf __init__.py in Packages

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
leoel
User
Beiträge: 36
Registriert: Dienstag 25. Mai 2004, 08:54
Wohnort: Graz

Hallo!

Habe testhalber mal ein eigenes Package erstellt (unter site-packages ein Unterverzeichnis) und ein entsprechendes __init__.py file erstellt, damit das ganze auch als Package erkenntlich ist. Ich hab mir so angeschaut, was in diesen Files bei anderen Packages steht, ist oft leer, manchmal stehen Config-Einstellunge o.ä drinnen.

Beispiel:

Struktur:
site-packages
|- LeoPackage
| ==> __init__.py
| ==> LeoPack.py

LeoPack.py enthält die Klassendefinition für die Klasse LeoPack
__init__.py enthält nur folgenden Code:

Code: Alles auswählen

 __version = '0.0.1'
Wenn ich nun in einem Script folgendes schreibe

test_package.py:

Code: Alles auswählen

import LeoPackage
print LeoPackage.__version
dann funktioniert das wunderbar

Allerdings kann ich nicht von der Klasse LeoPack
auf die Variable __version aus dem __init__.py
zugreifen, selbst wenn ich vor der Klasse
folgenden import mache:

Code: Alles auswählen

import LeoPackage
geht das nicht. Ich bekomme immer nur die Fehlermeldung (wenn ich in der Klasse LeoPack drauf zugreifen will (LeoPackage.__version) dass er das nicht kennt.

Weiss jemand bescheid, wie ich das lösen kann?

Danke, Leo[/code]
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Hi. Das wird so auch nicht gehen. Schließlich ist LeoPackage.__version ja auch eine Ebene höher als LeoPackage.LeoPack.LeoPack ... auf unsaubere Art und Weise könntest du das hier machen:

Code: Alles auswählen

from __init__ import __version
wie es sauber geht weiß ich allerdings nicht...
leoel
User
Beiträge: 36
Registriert: Dienstag 25. Mai 2004, 08:54
Wohnort: Graz

Hallo Milan!

Ich dachte immer, man kann nur Files importieren, und nicht
einzelne Objekte aus Files...

lg Leo
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

leoel hat geschrieben:Ich dachte immer, man kann nur Files importieren, und nicht einzelne Objekte aus Files...
Nö. Kannste hier nachschauen: http://docs.python.org/ref/import.html
Antworten