Maison > développement back-end > Tutoriel Python > Comment recharger un module Python sans redémarrer le serveur ?

Comment recharger un module Python sans redémarrer le serveur ?

Mary-Kate Olsen
Libérer: 2024-12-27 13:50:14
original
388 Les gens l'ont consulté

How to Reload a Python Module Without Restarting the Server?

Rechargement des modules Python pour les mises à niveau du serveur

La maintenance des serveurs Python de longue durée peut nécessiter des mises à niveau sans redémarrer l'ensemble du serveur. Une approche pour cela consiste à décharger et recharger des modules spécifiques.

Question : Comment décharger et recharger un module Python ?

Pour décharger un module précédemment importé et charger son version mise à jour sans redémarrer le serveur :

Réponse : utilisez importlib.reload() Fonction

Pour Python 3.4, utilisez la fonction importlib.reload() :

from importlib import reload
import foo

while True:
    # Perform actions
    if is_changed(foo):
        foo = reload(foo)
Copier après la connexion

Pour Python 2, utilisez la fonction de rechargement du module imp.

Reliaison des références

Après le rechargement d'un module, ses objets seront recréés, mais les références externes devront être mises à jour. Dans l'exemple fourni, si les objets Foo résident dans le module foo, vous devrez les recréer.

Cette technique est couramment utilisée pour le rechargement à chaud dans le serveur de développement de Django, permettant de refléter les modifications du code sans redémarrer. le serveur.

Détails du rechargement du module Python

Importlib.reload() recompile le code du module, réexécute le code au niveau du module et met à jour le dictionnaire du module avec de nouveaux objets. Les anciens objets seront récupérés lorsque le nombre de références tombera à zéro.

Les références non liées aux anciens objets en dehors du module devront être mises à jour manuellement si vous le souhaitez.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal