Python 导入错误:无法从“sklearn.externals”导入名称“六”

Posted

技术标签:

【中文标题】Python 导入错误:无法从“sklearn.externals”导入名称“六”【英文标题】:Python import error: cannot import name 'six' from 'sklearn.externals' 【发布时间】:2020-09-04 03:42:07 【问题描述】:

我正在使用 numpy 和 mlrose,到目前为止我所写的只是:

import numpy as np
import mlrose

但是,当我运行它时,它会出现一条错误消息:

 File "C:\Users\<my username>\AppData\Local\Programs\Python\Python38-32\lib\site-packages\mlrose\neural.py", line 12, in <module>
    from sklearn.externals import six
ImportError: cannot import name 'six' from 'sklearn.externals' (C:\Users\<my username>\AppData\Local\Programs\Python\Python38-32\lib\site-packages\sklearn\externals\__init__.py)

我们将不胜感激任何有关排序此问题的帮助。

【问题讨论】:

pip install six 应该安装six 并解决问题 这不是问题。 mlrose 正在尝试从sklearn 导入six,如果您安装了six,您仍然会收到此错误。 【参考方案1】:

解决方案:真正的答案是依赖需要由mlrose 维护者更改。

解决方法是:

import six
import sys
sys.modules['sklearn.externals.six'] = six
import mlrose

【讨论】:

已修复依赖关系的新版 mlrose 现在是 mlrose-hiive:pypi.org/project/mlrose-hiive 或 github.com/hiive/mlrose 此解决方案适用于我的另一个包 skrules,但给出了相同的错误。 mlrose-hiive 不适用于教程。特别是第一个教程中的模拟退火在分叉中不起作用。依赖关系可能已修复,但他在我找到的任何文档中都没有谈论它就破坏了原件。【参考方案2】:

from sklearn.externals import six 已弃用,请改用import six

【讨论】:

这似乎不是一个很有帮助的回答,除非您认为这里的 @Jack 是 mlrose 的开发人员(我绝对没有从他的问题中理解他是)。跨度> 是的,对 mlrose 来说相对较新,所以我不知道在那里做什么

以上是关于Python 导入错误:无法从“sklearn.externals”导入名称“六”的主要内容,如果未能解决你的问题,请参考以下文章

AWS Lambda python 错误:Runtime.ImportModuleError:无法导入模块“app”:无法从“pyparsing”导入名称“operatorPrecedence”

为啥我在 Python 中收到错误消息“无法导入名称 NoneType”?

无法从 Python 3 上的 itertools izip 导入

python sklearn中的导入错误。无法加载引用的库

python ImportError:无法从'faker'导入名称'Faker'

ImportError:无法从部分初始化的模块“dash”导入名称“dcc”-python