2017-10-19 3 views
0

私は、PyCharmでPython 3コードとまったく同じコードを実行すると、「実行」タブでフルトレースバックとエラーメッセージが表示されることがありますが、「終了コード1で処理が完了しました」 。PyCharm Run ---トレースバックやエラーが表示されることがあります。

1)誰かがこれがなぜ起こるのか説明できますか?

2)PyCharmに常に完全なトレースバックとエラーメッセージを表示するような方法はありますか?

編集:私が見ている動作を示す例です。これを20回実行すると、トレースバックとエラーが2回、「終了コード1」メッセージが18回表示されます。この動作を確認するには、例外が発生する前にコードを印刷する必要があるようです。例外が発生した場合(callme()を呼び出さずに)、私は常にトレースバックとエラーを取得します。

#!/usr/bin/python3 

def callme(): 
    print('doing some stuff!') 

def main(): 
    for i in range(1,100): 
     callme() 
    raise Exception('Something is went wrong!') 

if __name__ == '__main__': 
    main() 

編集2:私はちょうどこれに対する答えが必要であることを認識しました。 PyCharm Run表示ウィンドウには、特定の数の行だけが表示されます。印刷できる行数が印刷中のものよりも少ない場合は、行の一部が表示されません。実際にトレースバックラインはまだ存在しますが、他の出力の前に印刷されているため、ウィンドウに表示されません。 Runウィンドウの隣の小さな上ボタンを押すことで、実際に表示されていてもジャンプすることができることが分かりました。

編集3:その質問によると PyCharm output error messages interspersed with console output. How to fix this?

、それは限り、私はできる限りバグ(https://youtrack.jetbrains.com/issue/PY-16143)として報告したが、(GOT:私はこの問題を抱えた人だけじゃないように見えます教えてください)修理されませんでした。これを回避する方法に関するアイデア?

質問:私はPyCharm Community Edition 2016.3.2を使用しています。私のオペレーティングシステムはCentOS 6.6です。

+0

[MCVE](https://で –

+0

あなたはあなたのOSのようなものを指定する必要があります。また、 'python3 file.py'でPyCharmを使うのではなく、コマンドラインからスクリプトを直接実行しようとしましたか? – Nifled

+0

おかげさまで@ElRuso、mcveを手伝って何が起こっているのか理解できました! – EPH

答えて

1

私あなたがたびにスタックトレースを表示したい場合は、このコードを試してみて、とにかくstop using print for debugging
2017年2月3日のUbuntu 16.04 PyCharmに、この動作を確認することができます:)

import logging 

def callme(): 
    logging.info('doing some stuff!') 

def main(): 
    for i in range(1,100): 
     callme() 
    raise Exception('Something is went wrong!') 

if __name__ == '__main__': 
    logging.basicConfig(level='INFO') 
    main() 
+0

私はこのソリューションをテストして、PyCharmの私のバージョンで動作します。私はロギングライブラリがあることさえ知りませんでした!これは確かにどこでも印刷するよりはるかに良いと思われます。ありがとうございました! – EPH

関連する問題