# Make sure that DeprecationWarning within this package always gets printed
warnings.filterwarnings('always', category=DeprecationWarning,
module=r'^{0}\.'.format(re.escape(__name__)))
これは本当にかなり悪い振る舞いです。 本当にこれをしなければならないと感じたら、 append=True
を使ってください
これがアプリケーションにとってどのような問題であるかを詳しく説明していただけますか? コメントから、scikit-learn内のDeprecationWarnings
のみ影響するように思われます。
(https://github.com/scikit-learn/scikit-learn/pull/6930の関連するディスカッションも参照してください)
sklearn
がカスタマイズされた警告構成を上書きする理由について詳しく教えてください。
append=True
を追加しても、カスタマイズされていない警告構成を上書きすることはありません。
問題は、パッケージをインポートしても、アプリケーションのグローバル状態が影響を受けないことです。 また、ログ設定を変更するようなことをしてほしくない。
append = Trueを追加すると、カスタマイズされていない警告構成が上書きされることはありません。
ソースからsklearnをインストールし、 sklearn.utils.__init__.py
非推奨を手動で発生させてみました。 デフォルトの構成では、 python -c "import sklearn.utils"
呼び出すときに予想どおりに警告が発生しました。 我々は追加の場合append=True
するwarnings.filterwarnings
で使用されるsklearn/__init__.py
DeprecationWarning
もはや提起です。 理由は調べていません。
私は現在の状況が悪いことに同意します、私はあなたがこのセットアップでどのような実際的な問題に遭遇するのか知りたいだけでした(それが原則的に悪いという事実を超えて)。 ユースケースをよく理解することは、適切なソリューションを考え出すのにも役立ちます。 この問題については、 https://github.com/scikit-learn/scikit-learn/issues/9857で説明されてい
これをhttps://github.com/scikit-learn/scikit-learn/issues/9857の複製として
最も参考になるコメント
sklearn
がカスタマイズされた警告構成を上書きする理由について詳しく教えてください。append=True
を追加しても、カスタマイズされていない警告構成を上書きすることはありません。問題は、パッケージをインポートしても、アプリケーションのグローバル状態が影響を受けないことです。 また、ログ設定を変更するようなことをしてほしくない。