J'ai le même genre de problème. J'installe un outil et un environnement python et crée des variables système dans le registre. Pour actualiser le registre, je fais ce qui suit:
def RefreshEnv():
HWND_BROADCAST = 0xFFFF
WM_SETTINGCHANGE = 0x1A
SMTO_ABORTIFHUNG = 0x0002
result = ctypes.c_long()
SendMessageTimeoutW = ctypes.windll.user32.SendMessageTimeoutW
SendMessageTimeoutW(HWND_BROADCAST, WM_SETTINGCHANGE, 0, u'Environment',
SMTO_ABORTIFHUNG, 5000, ctypes.byref(result))
Cette méthode est rafraîchissante dans le registre comme je m'y attendais. Je dois encore ouvrir la fenêtre pour modifier les variables système dans Windows et cliquez simplement sur OK
pour les rafraîchir. Sinon, mes outils installés plantent avec un KeyError
en essayant d'attraper les variables d'environnement.
Je ne sais pas si la fonction Refresh
ci-dessus vous aidera (je suppose que non), mais au moins c'est un essai.