无法在Ubuntu上导入名称NotFittedError

时间:2015-12-22 14:54:03

标签: python machine-learning tensorflow skflow

当我尝试在TensorFlow上运行TensorFlow和Scikit Flow示例的titanic.py脚本时出现此错误:

Traceback (most recent call last):
  File "titanic.py", line 10, in <module>
    import skflow
  File "build/bdist.linux-x86_64/egg/skflow/__init__.py", line 20, in <module>
  File "build/bdist.linux-x86_64/egg/skflow/estimators/__init__.py", line 16, in <module>
  File "build/bdist.linux-x86_64/egg/skflow/estimators/base.py", line 25, in <module>
ImportError: cannot import name NotFittedError

我正在使用pip,python 2.7.9和Ubuntu 15

有人可以帮我解决这个错误吗?

3 个答案:

答案 0 :(得分:3)

编辑:现在skflow中已经fixed了。升级到最新版本的skflow将解决问题。

违规导入位于skflow/estimators/base.py

from sklearn.utils.validation import NotFittedError

看起来这个类是在(相对)recent commit to scikit-learn中移动的。降级到先前版本的scikit-learn可能是最容易的(例如,0.17版本似乎是兼容的)。如果您喜欢冒险,可以尝试编辑"build/bdist.linux-x86_64/egg/skflow/estimators/base.py"的第25行来阅读:

from sklean.exceptions import NotFittedError

答案 1 :(得分:1)

您需要学会自己调试此类问题

请参阅:每个安装都有点不同。安装了数百个软件包,显然您有版本冲突。但我们无法访问您的计算机,我们无法确定您安装的是哪个版本。

您缺少导入NotFittedError

现在你需要:

  1. 找出导入的 where (错误消息非常有帮助)
  2. 从导入(您需要查看 计算机上的文件...)
  3. 找出为什么找不到这个
  4. 找出添加或删除NotFittedError的时间
  5. 据我所知,您的tensorflow版本与您的sklearn版本不兼容。

答案 2 :(得分:0)

pip install --upgrade sklearn

解决了问题