[Python] Utiliser le multitraitement pour regrouper plusieurs processus dans un exe, la solution au problème de mémoire pleine lors de l'exécution de l'exe

Solution au problème de la mémoire pleine lors de l'exécution d'un exe packagé multithread Python


Préface

Le module multitraitement est utilisé dans le script Python. Lorsqu'il est conditionné dans un exe et exécuté, la mémoire se remplira rapidement et l'ordinateur devra être redémarré. Étant donné que de nombreuses bibliothèques sont utilisées dans le script, j'ai pensé qu'il s'agissait d'un problème avec d'autres bibliothèques. J'ai modifié certains contenus du script, mais le reconditionnement ne fonctionne toujours pas. Plus tard, j'ai pensé qu'il s'agissait d'un problème avec l'outil d'emballage, et cela ne fonctionnait toujours pas après avoir changé l'outil d'emballage.
Sans parler de bêtises, utilisez la bibliothèque multiprocessing, ajoutez directement multiprocessing.freeze_support() dans la première ligne de if name == ' main ':, repackage et l'exe peut être exécuté normalement.
Le code est le suivant (exemple) :

if __name__ == '__main__':
    multiprocessing.freeze_support()

Résumer

Cet article présente principalement le problème selon lequel, après avoir utilisé le multitraitement dans un script Python, l'empaquetage du script dans un exe puis l'exécution de l'exe entraînent une saturation de la mémoire et l'incapacité de s'exécuter normalement. La solution consiste à ajouter multiprocessing.freeze_support() dans la première ligne de if name == ' main ':, puis à le reconditionner pour exécuter le fichier exe normalement.

Je suppose que tu aimes

Origine blog.csdn.net/liaotianyin/article/details/130864125#comments_28399971
conseillé
Classement