Как игнорировать предупреждения об устаревании в Python

У меня была проблема, и метод, с которым Майк советовал отчасти отчасти, имел ошибку Dublicate Column name = '0' и изменил синтаксис вашего запроса как это [

     $tQ = "INSERT  INTO names (name_id, surname_id, sum, sum2, sum3,sum4,sum5) 
                SELECT '$name', '$surname', '$sum', '$sum2', '$sum3','$sum4','$sum5' 
FROM DUAL
                WHERE NOT EXISTS (
                SELECT sum FROM names WHERE name_id = '$name' 
AND surname_id = '$surname') LIMIT 1;";

Проблема был с именами столбцов. sum3 был равен sum4, а mysql выбрал имена столбцов дубликатов, и я написал код в этом синтаксисе, и он отлично работал,

143
задан aculich 7 February 2012 в 13:09
поделиться

8 ответов

Из документации модуля предупреждений :

 #!/usr/bin/env python -W ignore::DeprecationWarning

Если вы работаете в Windows: передайте -W ignore :: DeprecationWarning в качестве аргумента Python. Однако лучше решить проблему, приведя код к int .

(Обратите внимание, что в Python 3.2 предупреждения об устаревании по умолчанию игнорируются.)

110
ответ дан 23 November 2019 в 22:12
поделиться

Python 3

Просто пишет ниже строк, которые легко помнить прежде, чем написать Ваш код:

import warnings

warnings.filterwarnings("ignore")
0
ответ дан 23 November 2019 в 22:12
поделиться

Вы должны просто исправить свой код, но на всякий случай,

import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning) 
178
ответ дан 23 November 2019 в 22:12
поделиться

Передать правильные аргументы? : P

На более серьезном замечании, вы можете передать аргумент -Wi :: DeprecationWarning в командной строке интерпретатору, чтобы игнорировать предупреждения об устаревании.

5
ответ дан 23 November 2019 в 22:12
поделиться

Преобразуйте аргумент в int. Это так же просто, как

int(argument)
4
ответ дан 23 November 2019 в 22:12
поделиться

Не для того, чтобы вас обидеть, но вас предупреждают, что то, что вы делаете, скорее всего, перестанет работать при следующем обновлении python. Преобразуйте в int и покончите с этим.

BTW. Вы также можете написать свой собственный обработчик предупреждений. Просто назначьте функцию, которая ничего не делает. Как перенаправить предупреждения Python в настраиваемый поток?

0
ответ дан 23 November 2019 в 22:12
поделиться

У меня были эти:

/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 s, но не те, которые были вызваны:

import md5, sha
183
ответ дан 23 November 2019 в 22:12
поделиться

Я нашел самый чистый способ сделать это (особенно на windows), добавив следующее в C:\Python26\Lib\site-packages\sitecustomize.py:

import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)

Обратите внимание, что мне пришлось создать этот файл. Конечно, измените путь к python, если ваш путь отличается.

26
ответ дан 23 November 2019 в 22:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: