Bonjour,
Je cherche un moyen d'importer un module juste quand j'en ai besoin puis de le désimporter dès que je m'en suis servi.
Par exemple, numpy prend 365 Mo en RAM dès qu'on l'importe. J'aimerai bien pouvoir libérer cette mémoire dès que j'ai fini de m'en servir.
J'ai essayé 'del', mais ça fait rien, j'ai donc essayé de forcer le ramasse-miette à faire le ménage mais il nettoie pas les modules...
J'ai essayé '__import__' dans une fonction mais quand on sort de la fonction, le module reste importé.
J'ai regardé du coté 'importlib' mais j'ai pas réussi non plus...
Un exemple de ce que j'aimerai réussir à faire:
Est-ce que vous avez des pistes?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 >>> def foo(arg): ... """Fonction qui utilise potentielement un module lourd.""" ... if arg: ... module = __import__("numpy") ... ... # Utilisation du module ... # Suppression du module, libération de la mémoire (A) >>> foo(1) # (B) >>> # A cet endroit, je veux que la mémoire soit libérée, que se soit en (A) ou par le ramasse-miette en (B).
Partager