web-dev-qa-db-fra.com

Comment arrêter/arrêter un script python de s'exécuter?

J'ai écrit un programme dans IDLE pour tokenize les fichiers texte et il commence à tokeniza 349 fichiers texte! Comment puis-je l'arrêter? Comment puis-je arrêter un programme Python en cours d'exécution?

29
MACEE

Тобы остановить вашу программу, просто нажмитеControl+C,.

30
Christian

Vous pouvez également le faire si vous utilisez la fonction exit() dans votre code. Plus idéalement, vous pouvez faire sys.exit(). sys.exit() peut arrêter Python même si vous exécutez des tâches en parallèle via le package multiprocessing.

19
Amir

Si votre programme est exécuté sur une console interactive, appuyez sur CTRL + C lève une exception KeyboardInterruptsur le thread principal.

Si votre programme Python ne l'attrape pas, KeyboardInterruptprovoquera la fermeture de Python. Cependant, un bloc except KeyboardInterrupt:, ou quelque chose comme un except: nu, empêchera ce mécanisme d’exécuter le script.

Parfois, si KeyboardInterruptne fonctionne pas, vous pouvez envoyer un signal SIGBREAKà la place; sous Windows, CTRL + Pause/Break peut être traité par l’interprète sans générer une exception KeyboardInterruptcapturable.

Cependant, ces mécanismes ne fonctionnent principalement que si l'interpréteur Python est en cours d'exécution et répond aux événements du système d'exploitation. Si l'interpréteur Python ne répond pas pour une raison quelconque, le moyen le plus efficace consiste à terminer l'ensemble du processus du système d'exploitation qui l'exécute. Le mécanisme utilisé varie en fonction du système d'exploitation.

Dans un environnement de type Unix, vous pouvez appuyer sur CTRL + Z to suspend quel que soit le processus contrôlant actuellement la console. Une fois que vous avez reçu l'invite du shell, vous pouvez utiliser jobspour répertorier les travaux suspendus. Vous pouvez également supprimer le premier travail suspendu avec kill %1. (Si vous souhaitez redémarrer son exécution, vous pouvez poursuivre le travail au premier plan en utilisant fg %1; lisez le manuel de votre shell sur le contrôle des travaux pour plus d'informations.)

Sinon, dans un environnement Unix ou analogue, vous pouvez trouver le PID (identificateur de processus) du processus Python et le tuer par PID. Utilisez quelque chose comme ps aux | grep python pour rechercher les processus Python en cours d'exécution, puis utilisez kill <pid> pour envoyer un signal SIGTERMname__.

La commande killsur Unix envoie SIGTERMpar défaut et un programme Python peut installer un gestionnaire de signaux pour SIGTERMen utilisant le module signalname__. En théorie, tout gestionnaire de signal pour SIGTERMdevrait arrêter le processus normalement. Mais parfois, si le processus est bloqué (par exemple, bloqué dans un état ininterruptible IO veille), un signal SIGTERMn'a aucun effet, car le processus ne peut même pas se réveiller pour le gérer.

Pour supprimer de force un processus qui ne répond pas aux signaux, vous devez envoyer le signal SIGKILLname__, parfois appelé kill -9, car 9 est la valeur numérique de la constante SIGKILLname__. À partir de la ligne de commande, vous pouvez utiliser kill -KILL <pid> (ou kill -9 <pid> en abrégé) pour envoyer un SIGKILLet arrêter le processus en cours immédiatement.

Sous Windows, vous n’avez pas le système de signaux de processus Unix, mais vous pouvez forcer la fin d’un processus en cours à l’aide de la fonction TerminateProcessname__. Pour ce faire, la méthode la plus simple consiste à ouvrir le Gestionnaire des tâches, à rechercher le processus python.exe correspondant à votre programme et à cliquer sur le bouton "Terminer le processus". Vous pouvez également utiliser la commande taskkillà des fins similaires.

16
Daniel Pryden

Ctrl-Break il est plus puissant que Ctrl-C

15
Scott P.
  • Pour arrêter un script python, appuyez simplement sur Ctrl + C.
  • Dans un script avec exit(), vous pouvez le faire.
  • Vous pouvez le faire dans un script interactif avec juste quitter.
  • Vous pouvez utiliser pkill -f name-of-the-python-script.
12
wpp

Pour arrêter un programme en cours: utilisez CTRL + C pour terminer le processus.

Pour le gérer par programme en python: importez le module sys et utilisez sys.exit à l'endroit où vous souhaitez terminer le programme.

    import sys
    sys.exit()
4
Chandila07

vous pouvez également utiliser le Activity Monitor pour arrêter le processus py

2
Dennis

Quand j'ai un script python s'exécutant sur un terminal linux, CTRL +\fonctionne. (pas CRTL + C ou D)

1
Stefun06

Pour arrêter votre programme, appuyez simplement sur CTRL + D

ou exit().

1
Vivek Parmar

Si vous travaillez avec Spyder, utilisez CTRL +. (DOT) et vous redémarrerez le noyau. Vous arrêterez également le programme.

0
l1den

Presse Ctrl+Alt+Delete et le gestionnaire de tâches apparaîtra. Recherchez la commande Python en cours d'exécution, cliquez dessus avec le bouton droit de la souris et cliquez sur Arrêter ou tuer.

0
Andrew Hyder

Ctrl + Z devrait le faire, si vous êtes pris dans le shell Python. N'oubliez pas que les instances du script peuvent continuer à s'exécuter en arrière-plan. Par conséquent, sous Linux, vous devez arrêter le processus correspondant.

0
Juke

Control+D fonctionne pour moi sur Windows 10. De plus, mettre exit() à la fin fonctionne également.

0
chess_lover_6