Python ImportError: cannot import name datafunc [PyML]
Question: I have installed [PyML](http://pyml.sourceforge.net/tutorial.html) package in
order to use some machine learning algorithms, and according to the tutorial,
my installation is successful.

I try to run a python script which includes the following line to import
modules from PyML

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

However I get the error message above saying

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

cannot import name datafunc`. From terminal I check every module by saying

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

I only get error message for `datafunc`. The PyML library is under the `site-
packages` folder of Python 2.7.

I check this question here [Python error: ImportError: cannot import name
Akismet](http://stackoverflow.com/questions/2351919/python-error-importerror-
cannot-import-name-akismet), but I could't see how it will help my problem.

Do you have any idea why Python imports some modules but does not import this
one?


Answer: In PyML-0.7.13.3, the `datafunc` module exists in `PyML/containers` directory.
So it seems that you can import the module as follows:

    
    
    from PyML.containers import datafunc
    

Howerver, it raises an error beacuse the `datafunc` module uses undefined
classes `BaseVectorDataSet` and `SparseDataSet`.

Thus you need to modify the source of PyML in order to use `datafunc` module.
First, prepend the following two lines to `PyML/containers/datafunc.py` and
re-install the PyML library.

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

Then you can import the modules as follows:

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

BTW, I recommend that you use more documented and tested machine learning
library, such as [scikit-learn](http://scikit-learn.org/stable/).

