删除Python UserWarning
我刚刚完成了为Python 2.6安装MySQLdb
包,现在当我使用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)
有没有办法摆脱这个?
您可以将~/.python-eggs
更改为不可由群组/所有人写入。 我认为这工作:
chmod g-wx,o-wx ~/.python-eggs
您可以使用-W ignore
警告:
python -W ignore yourscript.py
如果您想在脚本中禁止警告(引用文档):
如果您使用的代码会引发警告,比如不推荐使用的函数,但不希望看到警告,则可以使用catch_warnings上下文pipe理器来禁止警告:
import warnings def fxn(): warnings.warn("deprecated", DeprecationWarning) with warnings.catch_warnings(): warnings.simplefilter("ignore") fxn()
在上下文pipe理器中,所有警告都将被忽略。 这使您可以使用已知不推荐的代码,而不必查看警告,同时不会抑制其他可能不知道使用不推荐使用的代码的代码的警告。 注意:这只能在单线程应用程序中保证。 如果两个或多个线程同时使用catch_warnings上下文pipe理器,则行为是未定义的。
如果你只是想忽略警告,你可以使用filterwarnings
:
import warnings warnings.filterwarnings("ignore")