我正在使用PYTHONWARNINGS="error::Warning"在警告时引发异常,但我想忽略某些这样的异常,这通常是很好的。当产生的异常是SyntaxError时,我有时想忽略它,但不知道如何忽略它。
详细示例:
# has_deprecated_syntax.py
"""this becomes invalid: \* """然后:
`$PYTHONWARNINGS="error::Warning" python3.6 -c "import has_deprecated_syntax"
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/Users/davidchudzicki/temp/so/has_deprecated_syntax.py", line 1
"""this becomes invalid: \* """
^
SyntaxError: invalid escape sequence \*这些忽略它的尝试都给我带来了同样的失败:
PYTHONWARNINGS="error::Warning,default::Warning:has_deprecated_syntax" python3.6 -c "import has_deprecated_syntax" 和
PYTHONWARNINGS="error::Warning,default::SyntaxError" python3.6 -c "import has_deprecated_syntax"作为参考,我认为这是忽略来自特定模块的警告的一般正确的环境设置:
通过以下方式:
# has_warning.py
import warnings
warnings.warn("hi")..。我得到了:
$PYTHONWARNINGS="error::Warning" python -c "import has_warning"
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "has_warning.py", line 3, in <module>
warnings.warn("hi")
UserWarning: hi我可以用以下命令忽略...which:
$PYTHONWARNINGS="error::Warning,default::Warning:has_warning" python -c
"import has_warning"
has_warning.py:3: UserWarning: hi
warnings.warn("hi")但它不适用于SyntaxError。有没有什么方法可以忽略那些来自特定模块的内容?
(注意:我已经为这个问题构建了一个小示例,但我关心的真正原因是,我希望在我帮助的包的持续集成中出现警告时失败,但当我这样做时,我从我们的一个依赖项中获得SyntaxError。)
发布于 2018-03-07 12:42:39
你不能忽略SyntaxError。这不是警告,这是个错误。
https://stackoverflow.com/questions/49144064
复制相似问题