・ Windodws10 ・ Python 3.8.3 ・ PyInstaller 3.6
Lorsque le traitement parallèle qui n'est pas possible lorsqu'il est exécuté à partir de la console est transformé en un fichier exe avec PyInstaller et cliqué, de nombreux processus exe démarrent et le PC se bloque. Désespoir
Nécessite freeze_support ()
Exemple de traitement parallèle Python qui fige le PC lorsqu'il est exécuté avec un fichier exe
Échantillon de traitement parallèle
from multiprocessing import Pool
#####Dans ce cas, une fonction qui renvoie le carré de l'argument###
def nijou(x):
print( x*x )
######Calculons en parallèle#########
if __name__ == "__main__":
p = Pool(4)
p.map( nijou, range(10) )
Cette fonction doit être appelée immédiatement après si name == '__ main__' dans le module principal S'il n'y a pas de ligne freeze_support (), RuntimeError lors de la tentative d'exécution d'un exécutable gelé Arrivera L'appel de freeze_support () n'a aucun effet sur les systèmes d'exploitation non Windows. De plus, freeze_support () n'a aucun effet si le module est exécuté par un interpréteur Windows Python standard (sauf si le programme est gelé).
Référence ici - traitement parallèle basé sur des processus multiprocesseurs
Ne gèle pas même lorsqu'il est exécuté avec exe
from multiprocessing import Pool,freeze_support
#freeze_Ajouter un support
#####Dans ce cas, une fonction qui renvoie le carré de l'argument###
def nijou(x):
print( x*x )
######Calculons en parallèle#########
if __name__ == "__main__":
freeze_support() #Ajoutée
p = Pool(4)
p.map( nijou, range(10) )
Recommended Posts