回答:
warnings
モジュールのドキュメントから:
#!/usr/bin/env python -W ignore::DeprecationWarning
Windowsを使用している場合:-W ignore::DeprecationWarning
引数としてPythonに渡します。しかし、問題を解決するには、intにキャストする方が良いでしょう。
(Python 3.2では、デフォルトで非推奨の警告が無視されることに注意してください。)
export PYTHONWARNINGS="ignore::DeprecationWarning:simplejson"
sorlからのdjango json deprication警告を無効にすることができました
コードを修正する必要がありますが、念のため、
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)
warnings.filterwarnings("ignore", category=DeprecationWarning)
。間違いかもしれませんが、警告を吐き出しているライブラリをインポートした後で、これを実行する必要があると思います。
from xgboost import XGBClassifier
。それが機能するためwarnings.filterwarnings("ignore", category=DeprecationWarning)
には、そのインポートの直前に置く必要がありました。
私はこれらを持っていました:
/home/eddyp/virtualenv/lib/python2.6/site-packages/Twisted-8.2.0-py2.6-linux-x86_64.egg/twisted/persisted/sob.py:12:
DeprecationWarning: the md5 module is deprecated; use hashlib instead import os, md5, sys
/home/eddyp/virtualenv/lib/python2.6/site-packages/Twisted-8.2.0-py2.6-linux-x86_64.egg/twisted/python/filepath.py:12:
DeprecationWarning: the sha module is deprecated; use the hashlib module instead import sha
それを修正しました:
import warnings
with warnings.catch_warnings():
warnings.filterwarnings("ignore",category=DeprecationWarning)
import md5, sha
yourcode()
これで、他DeprecationWarning
のすべてのを取得できますが、次の原因によるものは取得できません。
import md5, sha
これを行う最もクリーンな方法(特にWindowsの場合)は、C:\ Python26 \ Lib \ site-packages \ sitecustomize.pyに以下を追加することです。
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)
このファイルを作成する必要があったことに注意してください。もちろん、パスが異なる場合は、パスをpythonに変更します。
これらの答えはどれもうまくいきませんでしたので、これを解決するための方法を投稿します。次のat the beginning of my main.py
スクリプトを使用しましたが、正常に動作します。
以下をそのまま使用します(コピーして貼り付けます)。
def warn(*args, **kwargs):
pass
import warnings
warnings.warn = warn
例:
import "blabla"
import "blabla"
def warn(*args, **kwargs):
pass
import warnings
warnings.warn = warn
# more code here...
# more code here...
ENV PYTHONWARNINGS="ignore::DeprecationWarning"
関数でのみ警告を無視したい場合は、次の操作を実行できます。
import warnings
from functools import wraps
def ignore_warnings(f):
@wraps(f)
def inner(*args, **kwargs):
with warnings.catch_warnings(record=True) as w:
warnings.simplefilter("ignore")
response = f(*args, **kwargs)
return response
return inner
@ignore_warnings
def foo(arg1, arg2):
...
write your code here without warnings
...
@ignore_warnings
def foo2(arg1, arg2, arg3):
...
write your code here without warnings
...
すべての警告を無視する関数に@ignore_warningsデコレータを追加するだけです
Python3を使用している場合は、以下のコードを試してください。
import sys
if not sys.warnoptions:
import warnings
warnings.simplefilter("ignore")
またはこれを試してください...
import warnings
def fxn():
warnings.warn("deprecated", DeprecationWarning)
with warnings.catch_warnings():
warnings.simplefilter("ignore")
fxn()
またはこれを試してください...
import warnings
warnings.filterwarnings("ignore")
それについてあなたを打ち負かすためではありませんが、あなたがしていることは次のPythonをアップグレードするときにおそらく機能しなくなるだろうと警告されています。intに変換し、それで完了します。
ところで。独自の警告ハンドラを作成することもできます。何もしない関数を割り当てるだけです。 Pythonの警告をカスタムストリームにリダイレクトする方法
/usr/bin/env: python -W ignore::DeprecationWarning: No such file or directory
エラーが発生します。-W ignore::DeprecationWarning
コマンドラインでオプションを指定してpythonを実行すると機能しますが、/ usr / bin / envはそれを処理しません。