【问题标题】:How can I suppress warnings when running a python script?运行 python 脚本时如何抑制警告?
【发布时间】:2020-10-08 19:04:12
【问题描述】:

我正在尝试抑制警告。

这是我的 esri python 版本

python -V

Python 2.7.16

我试过了

python.exe -W 忽略 GET_ESRIGIS_WEB_TOKEN.py

但它给出了这个错误

无效的 -W 选项被忽略:无效操作:'"ignore'

我做错了什么?

ps:这里是帮助(参见下面的 -W 选项)

python.exe -h

-W arg : 警告控制; arg 是 action:message:category:module:lineno 还有 PYTHONWARNINGS=arg

用法:python.exe [选项] ... [-c cmd | -m 模组 |文件 | -] [参数] ... 选项和参数(以及相应的环境变量): -b :发出有关将字节数组与 unicode 进行比较的警告 (-bb:问题错误) -B : 不要在导入时写入 .py[co] 文件;还有 PYTHONDONTWRITEBYTECODE=x -c cmd :作为字符串传入的程序(终止选项列表) -d :解析器的调试输出;也PythonDEBUG = x -E :忽略 PYTHON* 环境变量(例如 PYTHONPATH) -h :打印此帮助消息并退出(也--help) -i : 运行脚本后交互检查;甚至强制提示 如果 stdin 似乎不是终端;还有 PYTHONINSPECT=x -m mod:将库模块作为脚本运行(终止选项列表) -O :稍微优化生成的字节码;还有 PYTHONOPTIMIZE=x -OO :除了 -O 优化之外,还删除文档字符串 -R :使用伪随机盐使各种类型的 hash() 值成为 在解释器的单独调用之间不可预测,如 防御拒绝服务攻击 -Q arg:除法选项:-Qold(默认)、-Qwarn、-Qwarnall、-Qnew -s :不将用户站点目录添加到 sys.path;还有 PYTHONNOUSERSITE -S:初始化时不要暗示“导入站点” -t :发出有关不一致的选项卡使用的警告(-tt:发出错误) -u :无缓冲的二进制标准输出和标准错误; PYTHONUNBUFFERED=x 有关与“-u”相关的内部缓冲的详细信息,请参见手册页 -v :详细(跟踪导入语句);还有 PythonVERBOSE=x 可以多次提供以增加详细程度 -V :打印 Python 版本号并退出(也是 --version) -W arg : 警告控制; arg 是 action:message:category:module:lineno 还有 PYTHONWARNINGS=arg -x : 跳过源代码的第一行,允许使用非 Unix 形式的 #!cmd -3:警告 Python 3.x 2to3 无法轻松修复的不兼容性 file : 从脚本文件中读取的程序 - :从标准输入读取的程序(默认;如果是 tty 则为交互模式) arg ...: 在 sys.argv[1:] 中传递给程序的参数

【问题讨论】:

  • 这很奇怪。 -W ignore 是正确的方法。如果有什么安慰的话,它适用于我的 python2 linux 安装!
  • 你有没有弄错warnings 模块?编写一个导入和打印warnings.__file__的小脚本。
  • 您有PYTHONWARNINGS 环境变量吗?也许那是错误的格式。也许这个“esri”python 版本有些奇怪……不管是什么。它是课程作业吗?也许他们在构建中禁用它?

标签: python warnings


【解决方案1】:

通常python -W ignore file.py 应该可以工作。

但是,您也可以尝试将其添加到代码中以抑制所有警告

import warnings warnings.filterwarnings("ignore")

参考:

https://stackoverflow.com/a/14463362/3288888

【讨论】:

    猜你喜欢
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 2017-06-23
    • 1970-01-01
    • 2021-10-09
    • 2013-04-18
    • 2016-07-04
    • 2018-03-03
    相关资源
    最近更新 更多