したがって、Django プロジェクトのテストを実行すると、次の出力が得られます。
WARNING 2013-04-25 17:55:29,977 18482 29789392 py.warnings:3 <module>() /home/sean/dev/project/testenv/local/lib/python2.7/site-packages/django/conf/urls/defaults.py:3: DeprecationWarning: django.conf.urls.defaults is deprecated; use django.conf.urls instead
DeprecationWarning)
WARNING 2013-04-25 17:55:29,986 18482 29789392 py.warnings:10 <module>() /home/sean/dev/project/testenv/local/lib/python2.7/site-packages/django/utils/copycompat.py:10: DeprecationWarning: django.utils.copycompat is deprecated; use the native copy module instead
DeprecationWarning)
私のコードのどこで、またはどの依存関係で、これらが発生しているのかを突き止めたいと思います。
http://docs.python.org/2/library/warnings.html
これによると、次のようにして警告を例外としてスローし、トレースバックを取得できます。
私のmanage.pyの上部で、他のコードが呼び出される前に:
import warnings
warnings.filterwarnings(
'error', r".*",
Warning, r'.*')
これにより、「PendingDeprecationWarning: django.utils.simplejson は非推奨です。代わりに json を使用してください。」スローされるので、次を使用しました:
import warnings
warnings.filterwarnings(
'error', r".*",
Warning, r'.*')
warnings.filterwarnings(
'ignore', r".*",
Warning, r'django\.utils\.simplejson')
ただし、以前の DeprecationWarnings はまだ出力されており、本来のようにエラーとして発生しません。
編集: また、フィルター ロジックが発生する場所である warnings.warn_explicit() の先頭に print ステートメントと pdb ステートメントを配置しようとしましたが、呼び出されることはありません。