Ich versuche, ein Plugin-System zu erstellen, und ich habe eine Funktion, die alle Module in ein Array importiert.Mehrere Importe des gleichen Dateinamens
Layout Plugins:
pluginsDir/
pluginsDir/Chat
pluginsDir/Chat/main.py
Und dies ist die Funktion, die findet und importiert Plugins:
if os.path.exists(pluginsDir):
for path, dirArray, fileArray in os.walk(pluginsDir):
for fileName in fileArray:
if fileName == "main.py":
sys.path.append(path)
try:
plugins.append(__import__("main"))
except:
print 'Could not import plugin, "'+path+'": plugin contains errors or is not a real plugin.'
Das ist in Ordnung, wenn ich nur ein Plugin habe, aber wenn ich mehrere Plugins habe, importiert es immer das erste Plugin, das es entdeckt.
Layout Plugins:
pluginsDir/
pluginsDir/Chat
pluginsDir/Chat/main.py
pluginsDir/build
pluginsDir/build/main .py
Ich habe versucht, sys.path.remove(path)
nach meiner try-Anweisung hinzuzufügen, aber es entfernt den Pfad nicht, nachdem ich das Modul bereits importiert habe.
Was kann ich tun, um meine Plugins korrekt zu importieren?
Danke, das sollte gut funktionieren. – MetaDark