Python-Modul und __all__

Ich versuche zu verstehen, wie man Modul mit __all zu verwalten. Zum Beispiel habe ich folgenden strukturierten Code:

 main.py |=> /database |=> __init__.py |=> engine (with variables engine, session, etc.) 

Jetzt möchte ich in der Lage sein, session und engine Instanzen direkt aus dem database zu importieren wie:

 from database import session 

Ich habe versucht, Zeile hinzuzufügen __all__ = ['session'] oder __all__ = ['engine.session'] zu __init__py aber wenn ich versuche zu importieren Ich habe eine Ausnahme AttributeError: 'modile' object has not attribute 'engine.session'

Gibt es eine Möglichkeit, das gewünschte Verhalten zu erreichen?

One Solution collect form web for “Python-Modul und __all__”

Listing Namen in __all__ nicht von selbst importieren Elemente in ein Modul. Alles, was es tut, sind Listennamen, die von diesem Modul importiert werden sollen, wenn Sie from database import * Syntax verwendet haben.

session in database/__init__.py :

 from .engine import session 
  • Python Import Typ Erkennung
  • __builtin__ Modul in Python
  • Welches Python-Modul eignet sich für die Datenmanipulation in einer Liste?
  • Pyinstaller Activex Attribut Fehler mit wxPython
  • __package__ ist beim Import eines Python-Moduls keine
  • Wie benutzt man importlib, um Module aus beliebigen Quellen zu importieren?
  • Homebrew + Python auf mac os x 10.8: Fatal Python error: PyThreadState_Get: kein aktueller Thread importiert mapnik
  • Wie kann ich auf das aktuelle Ausführungsmodul oder den Klassennamen in Python zugreifen?
  • Python ist die beste Programmiersprache der Welt.