擅长:python、mysql、java
<p>有趣的是,即使遵循@Alex的建议,我仍然有警告输出,如下所示:</p>
<pre class="lang-py prettyprint-override"><code>import warnings
with warnings.catch_warnings():
warnings.simplefilter('ignore', category=DeprecationWarning)
from sklearn.externals.joblib import Parallel, delayed
def main():
xs = Parallel()(delayed(lambda x: x**2)(i) for i in range(1, 6))
print(sum(xs))
if __name__ == '__main__':
main()
# $ python -W ignore example.py
# [...]
# DeprecationWarning: the imp module is deprecated in favour of importlib;
# see the module's documentation for alternative uses
# import imp
# 55
</code></pre>
<p>所以最终,我决定用一种非常老套的方式来做,并禁用所有的警告,因为我有点厌倦了寻找一种恰当的方法来处理它们。(不仅对于这个库,而且对于许多其他似乎非常渴望用不可抑制的警告轰炸您的库)。在</p>
^{pr2}$
<p>如果我错误地使用了@Alex的建议,或者你们中的一些人有更好的解决方案,我很乐意接受它作为答案。在</p>
<hr/>
<p><strong>更新:</strong></p>
<p>好吧,似乎很难影响在包中某个地方发出的警告。因此,最简单的事情可能是将<code>warnings.warn</code>替换为<code>noop</code>,或者以某种方式提前导入内部依赖项,并用上下文管理器抑制它们。在</p>