質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

5回答

11372閲覧

Python 処理が終了しても端末に応答が帰ってこない

Pdcs

総合スコア13

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2015/11/06 03:41

編集2022/01/12 10:55

Pythonで、例えばスクリプトの最後に

Python

1#ここまで何らかのコードが書いてあって 2print "end"

と、処理が終了したことを教えてくれるようにしています。
しかし、終了したはずなのに端末には応答が帰ってきません。コマンドが入力できない状態が数秒とか数十秒続くことがあります。

これは処理内容が重すぎる(大量の数値計算)ことが原因なのでしょうか?
(でも計算は終わっているんですよね?)
あるいは何か別の原因があるのでしょうか。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

syockit

2016/02/11 17:44

「終了したはず」というのは"end"が出力されたということですか?
guest

回答5

0

print "end" が最後の行であるなら、その後にする処理は無いので、それでも終了しないとするとスクリプト内容以外の原因でしょう。
print "end" という1行だけのスクリプトを実行するとどうなりますか?

投稿2015/11/06 04:20

otn

総合スコア84421

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Pdcs

2015/11/06 04:47

ご回答ありがとうございます。 print "end" だけであればもちろん一瞬で終わります。 質問投稿後、また少し調べてみたのですが、「メモリの解放がどうのこうの」という文を見かけました。何か関係あるのでしょうか?
guest

0

3時間もかかる処理なら進捗がわかると便利と思います。
以下のような感じで進捗を出してみては?

import os,sys, time
if name == 'main':
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0) # stop buffering
count = 0
while count < 100:
time.sleep(1) #何か処理・・・

count = count + 10 print "\rcount=" + str(count), print "" print "end"

投稿2016/02/07 22:31

menshan

総合スコア54

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

「処理が終了しても」とか「処理が終了したはずなのに」と書いてありますが、何をもって「処理が終了したはず」と判断しているのですか?

どこかで無限ループにでも陥っていて処理が終了していないということはありませんか?

投稿2016/01/31 06:42

wata

総合スコア70

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

マシンの CPU 使用率、メモリー使用率などを観察しながら、プログラムを実行させてみては?
Mac なら アクティビティモニタ、
Windows なら タスクモニタ、
Linux なら top コマンド
などを使うことができます。

投稿2015/11/07 23:20

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Pdcs

2015/11/17 04:05

ご回答ありがとうございました。 計算にはざっと3時間かかるので、大変ですね。。。 処理を少なくして実行したのではあまり意味ないと思いますし。
guest

0

マルチスレッドにしていませんか?
他のスレッドが生きていると終わるまで待ちます。

http://docs.python.jp/3/library/threading.html#threading.Thread.daemon

投稿2015/11/06 05:46

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Pdcs

2015/11/17 04:04

ご回答ありがとうございました。 申し訳ないのですが僕はスレッドに関する知識がないので、また勉強しようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問