Hab zwar deinen Tip mit "fromlist" nicht verstanden, aber nach ein wenig goggeln bin ich auf eine Mailingliste gestossen wo es nochmal erklaert wurde...
Damit hab ich dann das Hauptproblem loesen koennen
Aber nochmal zu deiner Frage, die Struktur soll prinzipiell so aussehen:
/Programmordner
+enthaelt Hauptdateien
-------/Gesamt_Pluginordner
-------/__init__.py (ohne "richtigen" Code, nur Disclaimer und Sachen wie __author__)
-----------/Pluginordner
-----------/ __init__.py Inhalt wie oben)
-----------/ start.py initialisiert plugin (enthaelt eine Funktion "start")
Initialisieren und importieren krieg ich jetzt aber hin

Was mir jetzt noch weiterhelfen wuerde, waere wenn mir jetzt noch jemand sagen kann, wie ich da
einen Uebergabewert mitgeben kann...
Der Code sieht jetzt so aus:
Code: Alles auswählen
def Plugins(parent):
'''ToDo: die benoetigten Uebergabewerte der Startfunktion irgendwie auslesen
'''
#in den Ordner 'plugins' wechseln
list = []
path = os.path.abspath(os.path.join(os.path.curdir, u"plugins"))
#iterieren
for foldername in os.listdir(path):
#versteckte und py - Dateien ausblenden
if foldername.startswith(".") or (foldername.endswith("py")
or foldername.endswith("pyc")):
continue
try:
#in jedem Ordner die Readme auslesen und die Datei start.py importieren
f_path = os.path.join(path, foldername, 'Readme.txt')
file = open(f_path,"r")
Beschreibung = file.readlines(1)
except:
logging.debug(u"keine Readme.txt gefunden in "+ f_path + " gefunden")
#import plugins
try:#start.py
pluginort = "plugins"#."+foldername#+".start"
#print pluginort
#__import__ akzeptiert Strings als Uebergabewert
plugin = __import__("plugins."+foldername+".start", globals(), locals(), ['start'])
#print plugin.__author__
except:
logging.debug(u"konnte kein Startmodul in "+ pluginort + " finden")
try:
'''hier wuerde ich gerne soetwas wie plugin.Start(parent) machen ;)'''
list.append([str(foldername), str(Beschreibung), plugin.Start, '', '',True])
except:
logging.debug(u"konnte Modul "+ foldername + " nicht laden")
#print list
return list
Der 3. Wert in der "list" - Liste wird fuer das Menue gebraucht.
in der Funktion die das Menue erstellt sieht das grob gesagt so aus:
Code: Alles auswählen
menu = wx.Menu().Append(wx.NewId(),list[0],list[1],list[3])
self.Bind(wx.EVT_MENU,list[2],menu)
Tipps und Hilfestellungen sind weiterhin willkommen
[Edit]
Kann das Problem jetzt noch ein wenig weiter eingrenzen...
Wenn ich einen Übergabewert mitgebe (parent), sperrt sich mein Plugin!
Da ich im Plugin mit dem Frame und einer Liste arbeite, beides bei der Menüinitialisierung aber anscheinend noch nicht vorhanden, meckert Python.
[Doppeledit]
Nachdem ich nun die Menüinitialisierung nach hinten versetzt habe, scheint erstmal fast alles zu stimmen...
Aber anscheinend wird mit dem Menüeintrag auch das Plugin gestartet...
Wie kann man das verhindern?
Hab es über:
probiert, dass hat aber (bisher) nichts bewirkt