1

したがって、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 ステートメントを配置しようとしましたが、呼び出されることはありません。

4

1 に答える 1