ImportError:无法导入名称签名

时间:2015-12-24 19:59:20

标签: python machine-learning scikit-learn artificial-intelligence

我想修改原始sklearn.CalibrationCV以创建我的赢了版本。原始代码具有"来自.utils.fixes导入签名"。所以我在我的版本中做了以下内容:

from sklearn.utils.fixes import signature

但收到了错误:

ImportError: cannot import name signature

检查GitHub上的sklearn源代码。我在fixes.py

中看到以下代码
try:
    from inspect import signature
except ImportError:
    from ..externals.funcsigs import signature

然后我直接做了from inspect import signature。仍然得到" ImportError: cannot import name signature"

除了如何解决这个问题之外,我还很好奇为什么原始版本可以导入将从其他来源导入的模块?感谢。

2 个答案:

答案 0 :(得分:2)

  • 在python 2中,inspect模块没有signature方法。
  • 在python 3中,inspect模块确实有signature方法。

此代码只是尝试使用python 2和3。

如果您使用的是python 2,则可能需要使用funcsigs模块,或者直接使用sklearn.externals.funcsigs(对于版本sklearn >= 0.17)。

答案 1 :(得分:1)

接受的答案不适用于最新版本的sklearn。

请直接使用

安装WordModel
funcsigs

,而改用pip install funcsigs