Les processus multi-traitements Python ne démarrent pas

Aug 30 2020

Je suis nouveau dans le multitraitement mais j'ai même du mal à démarrer les processus. Même l'extrait de code ci-dessous de la documentation de python n'imprime rien

from multiprocessing import Process

def f(name):
    print('hello', name)

if __name__ == '__main__':
    p = Process(target=f, args=('bob',))
    p.start()
    p.join()

Je suis passé par cette question similaire et leur solution ne fonctionne pas pour moi.

J'exécute python 3.8.2 sur Jupyter Notebook

Réponses

1 zot8 Aug 30 2020 at 09:54

https://docs.python.org/3/library/multiprocessing.html

Les fonctionnalités de ce package nécessitent que le module principal soit importable par les enfants. Ceci est couvert dans les directives de programmation mais cela vaut la peine de le souligner ici. Cela signifie que certains exemples, tels que les exemples multiprocessing.pool.Pool, ne fonctionneront pas dans l'interpréteur interactif.

Essayez de l'exécuter en tant que script .py via la console.

1 HardyWu Dec 03 2020 at 07:49

J'ai utilisé la dernière version Anaconda 2020.11 pour installer python Jupyter Notebook 6.1.4, JupterLab 2.26 et Spyder 4.1.5, etc., ils ne peuvent tous exécuter les fonctions appelées Process (). Start () et ne montrent pas d'erreur.

L'invite CMD.exe peut très bien exécuter les fonctions de processus dans les fichiers .py.