Python导入错误:无法导入名称datafunc [PyML]

1 投票
1 回答
1303 浏览
提问于 2025-04-17 23:07

我安装了PyML这个包,目的是为了使用一些机器学习算法,按照教程说我的安装是成功的。

我尝试运行一个Python脚本,里面有一行代码是用来导入PyML的模块:

from PyML import datafunc, svm, assess, modelSelection, ker

但是我收到一个错误信息,上面写着:

File <stdin>, line 1, in <module> ImportError: cannot import name datafunc

意思是说无法导入名为datafunc的模块。我在终端里检查每个模块,输入:

from PyML import datafunc, from PyML import svm, from PyML import ker

结果只有datafunc出现了错误信息。PyML库是在Python 2.7的site-packages文件夹下。

我查看了这个问题:Python错误:ImportError: cannot import name Akismet,但我没看到它能帮我解决我的问题。

你知道为什么Python能导入某些模块,但这个模块却导入不了吗?

1 个回答

0

在PyML-0.7.13.3版本中,datafunc模块位于PyML/containers这个文件夹里。

所以看起来你可以这样导入这个模块:

from PyML.containers import datafunc

但是会出现错误,因为datafunc模块使用了一些未定义的类,分别是BaseVectorDataSetSparseDataSet

因此,你需要修改PyML的源代码才能使用datafunc模块。

首先,在PyML/containers/datafunc.py文件的开头加上以下两行,然后重新安装PyML库。

from PyML.containers.baseDatasets import BaseVectorDataSet
from PyML.containers.vectorDatasets import SparseDataSet

这样你就可以像下面这样导入模块了:

from PyML import svm, modelSelection, ker
from from PyML.containers import datafunc
from from PyML.evaluators import assess

顺便说一下,我建议你使用更有文档支持和经过测试的机器学习库,比如scikit-learn

撰写回答