Python の操作はまったく初めてです (PHP のバックグラウンドがあります)。
私は PHP のエラー処理とロギングに慣れています。それでも、Python を使用すると、動作するはずの非常に単純なスクリプトで 500 エラーが発生します。
Python でエラー処理を有効にする方法はありますか? 500 エラーは、何かが正しくないことを除いて、ほとんど何も教えてくれません。
これに対する答えをネットで調べましたが、非常に明白なはずの解決策が見つかりません。
Python の操作はまったく初めてです (PHP のバックグラウンドがあります)。
私は PHP のエラー処理とロギングに慣れています。それでも、Python を使用すると、動作するはずの非常に単純なスクリプトで 500 エラーが発生します。
Python でエラー処理を有効にする方法はありますか? 500 エラーは、何かが正しくないことを除いて、ほとんど何も教えてくれません。
これに対する答えをネットで調べましたが、非常に明白なはずの解決策が見つかりません。
あなたの質問は、エラーまたは例外を表示する方法を尋ねています (もちろん、これらのエラーも処理する必要がありますが、その処理方法ではありません)。PHP の背景から、Python500 error
で Web プログラミングを行っていることを暗示しているようです。
Python でこれを行う方法はたくさんありますが、私がよく使う方法をいくつか紹介します。
logging
モジュールを使用してエラーをログに記録します。Sentry [ソースコードはこちら]など、役立つツールがたくさんあります。ロギングの詳細については、こちらをご覧ください。python -m pdb myscript.py
をデバッガー モードで開始し、c
( ) を入力してエラーが発生するまでcontinue
スクリプトを続行すると、インタラクティブな PDB (Python デバッガー) プロンプトで状態を確認できるようになります。そして、最も明白なものを指摘すると、Python インタープリターは、プログラムがクラッシュした場合にスタック トレースを出力します。たとえば、次のようになります。
→ python -c 'pprint "hello"'
File "<string>", line 1
pprint "hello"
^
SyntaxError: invalid syntax
# print.py is just one line: print 'hello world'
→ python print.py
File "print.py", line 1
pprint 'hello world'
^
SyntaxError: invalid syntax
アップデート:
フレームワークを使用していないようで、ホストの背後にいるように見えますが、ホストの外観からは、Python スクリプトをどのように提供しているかが正確にわかりません。ここで、必要なのはブラウザーでスタック トレースを確認することだけなので、ホストが使用するものに基づいて次の操作を実行できます。
スクリプトが CGI 経由でサーバーの背後で実行されている場合は、Python cgitbモジュールを使用して HTML ページにスタック トレースを出力するだけです。
import cgitb
cgitb.enable()
ただし、サインアップした共有ホスティングがmod_python
Apache で使用されている可能性が非常に高いため、Apache 構成ファイルでオンPythonDebug
にすると、ブラウザーにスタック トレースが出力されます。
PythonDebug On
Apache with についてはmod_wsgi
、ここで要約するよりも優れた記事が書かれています: mod_wsgi Debugging Techniques