j'ai peut-être râté quelque chose dans la documentation, mais voici
mon problème : comment peut-on rafraichir un module importé dans
l'interpréteur python ?
En effet, je développe un petit module dont je teste les fonctions via
l'interpréteur. Et en cas de bug, je corrige bien sûr le script,
mais... je ne sais pas comment prévenir l'interpréteur que le script
est modifié. Et à part quitter l'interpréteur, puis revenir, je ne
vois pas comment faire.
Bien sûr, je peux lancer la fonction directement via un autre script,
ou via le script lui même, mais la réponse m'intéresse.
Des idées ? Merci d'avance.
--
Paumé sur Usenet-Fr ? Un seul site ! http://www.alea.net/usenet/
Un peu de zic pour se détendre ? http://julien.robinson.free.fr/
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Sébastien Kirche
Le 10 juillet 2005 à 14:07, Vincent Hiribarren a formulé :
j'ai peut-être râté quelque chose dans la documentation, mais voici mon problème : comment peut-on rafraichir un module importé dans l'interpréteur python ?
reload(le_module)
Mais dans mon expérience cela ne fonctionne pas à tous les coups (?). Quelquefois ça passe en supprimant le .pyc avant de recharger.
Et il faut que le module ait été chargé sans erreur. Sinon il faut réimporter.
HTH -- Sébastien Kirche
Le 10 juillet 2005 à 14:07, Vincent Hiribarren a formulé :
j'ai peut-être râté quelque chose dans la documentation, mais voici
mon problème : comment peut-on rafraichir un module importé dans
l'interpréteur python ?
reload(le_module)
Mais dans mon expérience cela ne fonctionne pas à tous les coups (?).
Quelquefois ça passe en supprimant le .pyc avant de recharger.
Et il faut que le module ait été chargé sans erreur. Sinon il faut
réimporter.
Le 10 juillet 2005 à 14:07, Vincent Hiribarren a formulé :
j'ai peut-être râté quelque chose dans la documentation, mais voici mon problème : comment peut-on rafraichir un module importé dans l'interpréteur python ?
reload(le_module)
Mais dans mon expérience cela ne fonctionne pas à tous les coups (?). Quelquefois ça passe en supprimant le .pyc avant de recharger.
Et il faut que le module ait été chargé sans erreur. Sinon il faut réimporter.
HTH -- Sébastien Kirche
William Dode
On 10-07-2005, Vincent Hiribarren wrote:
Bonjour à tous,
j'ai peut-être râté quelque chose dans la documentation, mais voici mon problème : comment peut-on rafraichir un module importé dans l'interpréteur python ?
En effet, je développe un petit module dont je teste les fonctions via l'interpréteur. Et en cas de bug, je corrige bien sûr le script, mais... je ne sais pas comment prévenir l'interpréteur que le script est modifié. Et à part quitter l'interpréteur, puis revenir, je ne vois pas comment faire.
A cette adresse tu trouvera un exemple d'auto-reload :
http://www.cherrypy.org/wiki/AutoReload
-- William Dodé - http://flibuste.net
On 10-07-2005, Vincent Hiribarren wrote:
Bonjour à tous,
j'ai peut-être râté quelque chose dans la documentation, mais voici
mon problème : comment peut-on rafraichir un module importé dans
l'interpréteur python ?
En effet, je développe un petit module dont je teste les fonctions via
l'interpréteur. Et en cas de bug, je corrige bien sûr le script,
mais... je ne sais pas comment prévenir l'interpréteur que le script
est modifié. Et à part quitter l'interpréteur, puis revenir, je ne
vois pas comment faire.
A cette adresse tu trouvera un exemple d'auto-reload :
j'ai peut-être râté quelque chose dans la documentation, mais voici mon problème : comment peut-on rafraichir un module importé dans l'interpréteur python ?
En effet, je développe un petit module dont je teste les fonctions via l'interpréteur. Et en cas de bug, je corrige bien sûr le script, mais... je ne sais pas comment prévenir l'interpréteur que le script est modifié. Et à part quitter l'interpréteur, puis revenir, je ne vois pas comment faire.
A cette adresse tu trouvera un exemple d'auto-reload :
http://www.cherrypy.org/wiki/AutoReload
-- William Dodé - http://flibuste.net
Fabrice Clement
Bonjour,
Si ton module s'appelle monmodule et si tu l'as importé avec un:
import monmodule
alors tu peux faire:
reload(monmodule)
Si par contre tu as fait:
from monmodule import *
alors là il te faut faire:
import sys del sys.modules['monmodule'] from monmodule import *
Je te conseille cependant d'écrire tes tests dans un fichier (test_monmodule.py par exemple) qui commence par:
# -*- coding: utf-8 -*- if not __name__ == '__main__': import sys try: del sys.modules['monmodule'] print "Chargement forcé de 'monmodule'" except KeyError : pass
from monmodule import *
... suivit de tes tests ...
Ainsi lors de la première utilisation dans l'interpréteur tu fais:
import test_monmodule ... affichage du résultat de tes tests ...
tu modifies alors test_monmodule.py et/ou monmodule.py et dans l'interpréteur tu fais:
reload(test_monmodule) ... affichage du résultat de tes tests ...
Et voilà !
Je te conseille aussi d'utiliser les tests unitaires avec le module 'unittest' (doc sur http://docs.python.org/lib/module-unittest.html).
Fabrice
Bonjour,
Si ton module s'appelle monmodule et si tu l'as importé avec un:
import monmodule
alors tu peux faire:
reload(monmodule)
Si par contre tu as fait:
from monmodule import *
alors là il te faut faire:
import sys
del sys.modules['monmodule']
from monmodule import *
Je te conseille cependant d'écrire tes tests dans un fichier
(test_monmodule.py par exemple) qui commence par:
# -*- coding: utf-8 -*-
if not __name__ == '__main__':
import sys
try:
del sys.modules['monmodule']
print "Chargement forcé de 'monmodule'"
except KeyError :
pass
from monmodule import *
... suivit de tes tests ...
Ainsi lors de la première utilisation dans l'interpréteur tu fais:
import test_monmodule
... affichage du résultat de tes tests ...
tu modifies alors test_monmodule.py et/ou monmodule.py et dans
l'interpréteur tu fais:
reload(test_monmodule)
... affichage du résultat de tes tests ...
Et voilà !
Je te conseille aussi d'utiliser les tests unitaires avec le module
'unittest' (doc sur http://docs.python.org/lib/module-unittest.html).