Подтвердить что ты не робот

Удалить Python UserWarning

Я только что закончил установку моего пакета MySQLdb для Python 2.6, и теперь, когда я импортирую его с помощью import MySQLdb, появится предупреждение пользователя

/usr/lib/python2.6/site-packages/setuptools-0.8-py2.6.egg/pkg_resources.py:1054:
UserWarning: /home/sgpromot/.python-eggs is writable by group/others and vulnerable 
to attack when used with get_resource_filename. Consider a more secure location 
(set with .set_extraction_path or the PYTHON_EGG_CACHE environment variable).
  warnings.warn(msg, UserWarning)

Есть ли способ избавиться от этого?

4b9b3361

Ответ 1

Вы можете изменить ~/.python-eggs, чтобы не записываться группой/всеми. Я думаю, что это работает:

chmod g-wx,o-wx ~/.python-eggs

Ответ 2

Вы можете подавлять предупреждения с помощью -W ignore:

python -W ignore yourscript.py

Если вы хотите подавить предупреждения в своем script (цитата из документов):

Если вы используете код, который, как вы знаете, вызовет предупреждение, например, устаревшую функцию, но не хочет видеть предупреждение, тогда можно отключить предупреждение с помощью диспетчера контекстов catch_warnings:

import warnings

def fxn():
    warnings.warn("deprecated", DeprecationWarning)

with warnings.catch_warnings():
    warnings.simplefilter("ignore")
    fxn()

Внутри контекстного менеджера все предупреждения будут просто проигнорированы. Это позволяет использовать известный устаревший код без необходимости видеть предупреждение, не подавляя предупреждение для другого кода, который может не знать о его использовании устаревшего кода. Примечание: это можно гарантировать только в однопоточном приложении. Если два или более потока используют диспетчер контекстов catch_warnings одновременно, поведение undefined.

Если вы хотите просто игнорировать предупреждения, вы можете использовать filterwarnings:

import warnings
warnings.filterwarnings("ignore")