我将修改原始sklearn.CalibrationCV
以创建我的获胜版本。原始代码具有"from.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
"
除了如何解决这个问题,我还很好奇为什么原始版本可以导入将从另一个源导入的模块?谢谢
- 在python 2中,
inspect
模块没有signature
方法 - 在python 3中,
inspect
模块确实有一个signature
方法
这段代码只是试图同时使用python 2和3。
如果您使用的是python 2,则可能需要使用funcsigs
模块,或者直接使用sklearn.externals.funcsigs
(对于版本sklearn >= 0.17
)。
接受的答案不适用于最新版本的sklearn。
请使用直接安装funcsigs
pip install funcsigs
而使用CCD_ 13。