J'ai un script python qui utilise sur d'autres scripts, j'utilise généralement Y a-t-il d'autres moyens d'arrêter le programme? P>
Ceci est inactif sur Windows, si cela fait toute différence. P> plt.show () code> comme c'est la dernière instruction. Quand il s'exécute, Idle est juste bloqué après la dernière instruction. Je reçois l'image mais je n'obtiens pas le rappel. P>
Ctrl-C CODE> pour casser le programme (parfois ne fonctionne pas immédiatement) mais comment puis-je récupérer l'invite avec le
plt.show () < / code>?
Ctrl-C Code> ne fonctionne pas ... P>
4 Réponses :
J'ai vu ce problème avec oisif et matplotlib lorsque vous les utilisez sous Windows. Je ne connais pas la cause exacte, mais CTRL-C a plusieurs fois a généralement travaillé pour moi. Si cela ne fonctionne pas pour vous, vous pouvez utiliser l'interpréteur normal au lieu d'écrire votre tracé directement dans un fichier au lieu de l'écran. P>
C'est l'un de ces temps (abondants) lorsque l'inactif ne se comporte pas comme un script Python normal ou une session d'interprète. À cause de cela, j'évite habituellement de ralenti. P>
Malheureusement, les options sur Windows ne sont pas super. J'utilise directement l'interprète interactif (malgré la cmd.exe qui ne sont pas tous agréables) et appelez Python de GVIM pour exécuter des scripts. Tout nombre d'éditeurs et d'IDes peut appeler Python directement, et nombre d'entre eux sont répertoriés sur wiki.python.org/ Moin / intégréDevelopmentEnvironnements . Ipython peut souffrir de certains des mêmes problèmes de ralenti, mais je soupçonne que cela sort de sa manière de faire du travail matplotlib (je ne l'utilise jamais moi-même, donc je ne peux pas le promettre).
Lorsque l'on appuie sur la coquille de Highle, la coquille envoie un message au processus d'exécution pour augmenter l'interruption. La plupart du temps où cela échoue, il aurait échoué si l'on avait frappé ^ C en courant directement sous Python. Il y a des raisons complètement indépendantes du ralenti pourquoi Python ne peut pas toujours arrêter et émettre de manière gracieuse a >>> une invite sur un signal d'interruption ^ C.
Lorsque vous utilisez Si vous utilisez le backend Tkagg, vous devrez déplacer votre souris sur une figure après avoir appuyé sur CTRL + C. Cela fera l'arrêt de la boucle d'événement. (Tkinter a ses bizarreries) p>
alternativement, Idlex offre la prise en charge matplotlib avec inactif à l'aide de l'extension EventLoop.py. Vous pouvez afficher et interagir avec des figures sans utiliser plt.show () code>, le sous-processus Python entre dans la boucle d'événement de la boîte à outils de l'interface graphique et les blocs jusqu'à la sortie de la boucle d'événement. Quand il quitte, vous récupérez l'invite. P>
plt.show () code>. Assurez-vous simplement de définir
plt.interactive (true) code> avant de générer des figures. P>
Ctrl + F6 (Redémarrez Shell) P>
ou shell-> redémarrer coquille p>
J'ai eu le même problème dans l'éditeur de Python Canopy Python, et j'ai pu interrompre la session Python avec Ctrl +. code> (bouton "DOT"). J'espère que cela aide, sinon ils font probablement des choses de la même manière p>
Quelques options ici: Stackoverflow.com/Questtions/1219394