Risposte:
Dalla documentazione del warnings
modulo :
#!/usr/bin/env python -W ignore::DeprecationWarning
Se sei su Windows: passa -W ignore::DeprecationWarning
come argomento a Python. Meglio però risolvere il problema, lanciando a int .
(Si noti che in Python 3.2, gli avvisi di deprecazione vengono ignorati per impostazione predefinita.)
export PYTHONWARNINGS="ignore::DeprecationWarning:simplejson"
per disabilitare gli avvisi di deprivazione django json da sorl
Dovresti semplicemente correggere il tuo codice ma, nel caso,
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)
warnings.filterwarnings("ignore", category=DeprecationWarning)
. Penso che devi eseguirlo dopo aver importato la libreria che sputa gli avvisi, anche se potrei sbagliarmi.
from xgboost import XGBClassifier
. Ho dovuto mettere warnings.filterwarnings("ignore", category=DeprecationWarning)
immediatamente prima dell'importazione perché funzionasse.
Ho avuto questi:
/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
Risolto con:
import warnings
with warnings.catch_warnings():
warnings.filterwarnings("ignore",category=DeprecationWarning)
import md5, sha
yourcode()
Ora ottieni ancora tutti gli altri DeprecationWarning
, ma non quelli causati da:
import md5, sha
Ho trovato il modo più pulito per farlo (specialmente su Windows) è aggiungendo quanto segue a C: \ Python26 \ Lib \ site-pacchetti \ sitecustomize.py:
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)
Nota che ho dovuto creare questo file. Naturalmente, cambia il percorso in python se il tuo è diverso.
Nessuna di queste risposte ha funzionato per me, quindi pubblicherò il mio modo di risolverlo. Uso il seguente at the beginning of my main.py
script e funziona benissimo.
Utilizzare quanto segue (copia e incolla):
def warn(*args, **kwargs):
pass
import warnings
warnings.warn = warn
Esempio:
import "blabla"
import "blabla"
def warn(*args, **kwargs):
pass
import warnings
warnings.warn = warn
# more code here...
# more code here...
ENV PYTHONWARNINGS="ignore::DeprecationWarning"
Converti l'argomento in int. È semplice come
int(argument)
Quando si desidera ignorare gli avvisi solo nelle funzioni, è possibile effettuare le seguenti operazioni.
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
...
Basta aggiungere il decoratore @ignore_warnings sulla funzione che si desidera ignorare tutti gli avvisi
Prova il codice seguente se stai usando Python3:
import sys
if not sys.warnoptions:
import warnings
warnings.simplefilter("ignore")
o prova questo ...
import warnings
def fxn():
warnings.warn("deprecated", DeprecationWarning)
with warnings.catch_warnings():
warnings.simplefilter("ignore")
fxn()
o prova questo ...
import warnings
warnings.filterwarnings("ignore")
Python 3
Basta scrivere sotto le righe che sono facili da ricordare prima di scrivere il codice:
import warnings
warnings.filterwarnings("ignore")
Per python 3, basta scrivere sotto i codici per ignorare tutti gli avvisi.
from warnings import filterwarnings
filterwarnings("ignore")
Non per picchiarvi, ma vieni avvisato che probabilmente quello che stai facendo smetterà di funzionare al prossimo aggiornamento di Python. Converti in int e finisci con esso.
BTW. Puoi anche scrivere il tuo gestore di avvisi. Basta assegnare una funzione che non fa nulla. Come reindirizzare gli avvisi di Python su uno stream personalizzato?
/usr/bin/env: python -W ignore::DeprecationWarning: No such file or directory
errore. Funziona se eseguo python con l'-W ignore::DeprecationWarning
opzione sulla riga di comando, ma / usr / bin / env non lo gestisce.