使用 python 时的警告信息
Posted
技术标签:
【中文标题】使用 python 时的警告信息【英文标题】:Warning messages when using python 【发布时间】:2017-05-05 11:02:10 【问题描述】:当我运行 SVM python 代码时,我不断得到这个:
Warning (from warnings module):
File "/usr/local/lib/python2.7/dist-packages/sklearn/cross_validation.py", line 44
"This module will be removed in 0.20.", DeprecationWarning)
DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.
Warning (from warnings module):
File "/usr/local/lib/python2.7/dist-packages/sklearn/grid_search.py", line 43
DeprecationWarning)
DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. This module will be removed in 0.20.
此警告消息表示什么?
提前致谢
【问题讨论】:
您熟悉“弃用”这个术语吗?这意味着该模块计划最终删除,您应该在编写新代码时避免使用它,同时更新旧代码以不依赖它。但它往往会在很长一段时间内发生,因此人们有足够的机会来处理它以避免最终损坏。我不确定还有什么不清楚的地方,您能否更具体地告诉我们您在消息中不明白的地方? 【参考方案1】:scikit-learn 的最新稳定版本是 0.18 http://scikit-learn.org/stable/
您使用的版本已弃用这些模块。 或者使用
from sklearn.model_selection import train_test_split
看看这个讨论 https://github.com/rhiever/tpot/issues/284 还有这条评论:https://github.com/rhiever/tpot/commit/84c5e26b447251088826737612ccf0817ef43db2
【讨论】:
不推荐使用模块的不是下一个版本,模块已经在当前(版本 0.18)中被弃用。弃用意味着不再维护模块,通常支持替代或更好的做法。在这种情况下,开发人员表示 cross_validation 将在 0.20 版本中被移除。【参考方案2】:表示 scikit-learn 的 SVM 模块内部使用了模块 cross_validation 和 grid_search。这两个都将在 0.20 版中被模块的 model_selection 等价物替换。因此,您不必担心,一旦将 scikit-learn 升级到下一个版本,您应该不会再看到警告了。
【讨论】:
【参考方案3】:从终端运行 python 文件时,我遇到了同样的错误。在 RuntimeError 描述中,建议安装 python 应用程序并使用 pythonw 代替 python,我就是这样做的。幸运的是它对我有用。
pythonw 文件名.py
【讨论】:
以上是关于使用 python 时的警告信息的主要内容,如果未能解决你的问题,请参考以下文章
使用vs进行Nuget打包时的LicenseExpression填写示例参考