Réponses:
De la documentation du warnings
module :
#!/usr/bin/env python -W ignore::DeprecationWarning
Si vous êtes sous Windows: passez -W ignore::DeprecationWarning
en argument à Python. Mieux vaut cependant résoudre le problème, en castant en int .
(Notez que dans Python 3.2, les avertissements d'obsolescence sont ignorés par défaut.)
export PYTHONWARNINGS="ignore::DeprecationWarning:simplejson"
pour désactiver les avertissements de dépréciation django json de sorl
Vous devriez juste corriger votre code mais juste au cas où,
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)
warnings.filterwarnings("ignore", category=DeprecationWarning)
. Je pense que vous devez l'exécuter après avoir importé la bibliothèque qui crache les avertissements, même si je peux me tromper.
from xgboost import XGBClassifier
. J'ai dû mettre warnings.filterwarnings("ignore", category=DeprecationWarning)
immédiatement avant cette importation pour que cela fonctionne.
J'avais ces:
/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
Corrigé avec:
import warnings
with warnings.catch_warnings():
warnings.filterwarnings("ignore",category=DeprecationWarning)
import md5, sha
yourcode()
Maintenant, vous obtenez toujours tous les autres DeprecationWarning
, mais pas ceux causés par:
import md5, sha
J'ai trouvé le moyen le plus propre de le faire (en particulier sur Windows) en ajoutant ce qui suit à C: \ Python26 \ Lib \ site-packages \ sitecustomize.py:
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)
Notez que j'ai dû créer ce fichier. Bien sûr, changez le chemin vers python si le vôtre est différent.
Aucune de ces réponses n'a fonctionné pour moi, je vais donc publier ma façon de résoudre ce problème. J'utilise le at the beginning of my main.py
script suivant et cela fonctionne très bien.
Utilisez ce qui suit tel quel (copiez-collez-le):
def warn(*args, **kwargs):
pass
import warnings
warnings.warn = warn
Exemple:
import "blabla"
import "blabla"
def warn(*args, **kwargs):
pass
import warnings
warnings.warn = warn
# more code here...
# more code here...
ENV PYTHONWARNINGS="ignore::DeprecationWarning"
Convertissez l'argument en int. C'est aussi simple que
int(argument)
Lorsque vous souhaitez ignorer les avertissements uniquement dans les fonctions, vous pouvez effectuer les opérations suivantes.
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
...
Ajoutez simplement le décorateur @ignore_warnings sur la fonction que vous souhaitez ignorer tous les avertissements
Essayez le code ci-dessous si vous utilisez Python3:
import sys
if not sys.warnoptions:
import warnings
warnings.simplefilter("ignore")
ou essayez ceci ...
import warnings
def fxn():
warnings.warn("deprecated", DeprecationWarning)
with warnings.catch_warnings():
warnings.simplefilter("ignore")
fxn()
ou essayez ceci ...
import warnings
warnings.filterwarnings("ignore")
Python 3
Écrivez simplement ci-dessous des lignes faciles à retenir avant d'écrire votre code:
import warnings
warnings.filterwarnings("ignore")
Pour python 3, écrivez simplement les codes ci-dessous pour ignorer tous les avertissements.
from warnings import filterwarnings
filterwarnings("ignore")
Je ne veux pas vous en vouloir, mais vous êtes averti que ce que vous faites cessera probablement de fonctionner lors de la prochaine mise à niveau de python. Convertissez en int et en avez fini avec lui.
BTW. Vous pouvez également écrire votre propre gestionnaire d'avertissements. Attribuez simplement une fonction qui ne fait rien. Comment rediriger les avertissements python vers un flux personnalisé?
/usr/bin/env: python -W ignore::DeprecationWarning: No such file or directory
erreur. Cela fonctionne si j'exécute python avec l'-W ignore::DeprecationWarning
option sur la ligne de commande, mais / usr / bin / env ne le gère pas.