Ich habe etwa folgende Ordnerstruktur:
Code: Alles auswählen
+--GHost++
| |
| +--python
| | |
| | +--__init__.py
| | |
| | +--test.py]
durch import(python) wird alles ordnungsgemäß aufgerufen, die funktionen werden korrekt registriert. Jetzt lasse ich python reloaden, wodurch jedoch nur die "__init__.py" reloadet wird, nicht aber test.py. Ich habe es sogar schon mit del python, anschließendem import und reload von python versucht... jedoch ohne Erfolg. Ich habe gelesen, dass es bei "Ipython" (ka was das ist) eine deep reload funktion gibt, ich brauche allerdings eine möglichkeit mit "offiziellen" funktionen der python > 3.x libs.
Was ich noch entdeckt habe war ein import von sys und hier ein sys.module.clear() jedoch denke ich, dass das nur mit sys modulen klappt...
Wie also kann ich einen "deep reload" durchführen bzw wie kann ich meine reste der "test.py" korrekt löschen?
MfG Krauzi
P.s.: die __init__.py macht folgendes:
Code: Alles auswählen
import test
test.init()
Code: Alles auswählen
import GHost
def init():
GHost.registerHandler("PlayerJoin", onPlayerJoin) #GHost ist eine mit der Python C API erstelltes Modul;
#hier wird auf das Event "PlayerJoin" meine Funktion onPlayerJoin registriert
def onPlayerJoin(player):
if player.getName() == "Krauzi":
player.setIsAdmin(True)
Code: Alles auswählen