web-dev-qa-db-ja.com

停止する方法Python IDLEでのプログラム実行

最後の命令としてplt.show()を使用するpythonスクリプトがあります。実行すると、IDLEは最後の命令の後でハングします。画像を取得しますが、取得しません。プロンプトバック。

他のスクリプトでは、通常、_ctrl-c_を使用してプログラムを中断します(すぐに機能しない場合もあります)が、plt.show()でプロンプトを元に戻すにはどうすればよいですか? _Ctrl-c_が機能しません...

プログラムを停止する他の方法はありますか?

違いがあれば、これはWindows上のIDLEです。

10
greye

IDLEとmatplotlibをWindowsで使用すると、この問題が発生します。正確な原因はわかりませんが、Ctrl-cを数回使用するのが一般的です。それがうまくいかない場合は、画面ではなくファイルにプロットを直接書き込む代わりに、通常のインタプリタを使用できます。

これは、IDLEが通常のPythonスクリプトまたはインタープリターセッションのように動作しない(豊富な)時間の1つです。このため、私は通常IDLEを避けます。

4
Mike Graham

Ctrl + F6(シェルの再起動)

またはシェル->シェルの再起動

7
hexicle

plt.show()を使用すると、pythonサブプロセスはGUIツールキットのイベントループに入り、イベントループが終了するまでブロックします。終了すると、プロンプトが返されます。

TkAggバックエンドを使用している場合は、Ctrl + Cを押した後、マウスを図形の上に移動する必要があります。これにより、イベントループが停止します。 (Tkinterには癖があります)

または、 IdleX は、EventLoop.py拡張子を使用してIDLEでMatplotlibサポートを提供します。 plt.show()を使用せずに、図を表示および操作できます。図を生成する前に、必ずplt.interactive(True)を設定してください。

2
Roger

キャノピーPythonエディターで同じ問題が発生し、CTRL+.(「ドット」ボタン)でpythonセッションを中断できました)。助けます、または彼らはおそらく同様の方法で物事を行います

1
Stas Prihod'co