You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The following error is raised when importing the latest version of EvalML with Featuretools < 1.16.0 (1.7.0, 1.14.0 and 1.15.0 have been tried):
Traceback (most recent call last):
File "[...]/evalml/__init__.py", line 9, in <module>
import evalml.model_understanding
File "[...]/evalml/model_understanding/__init__.py", line 39, in <module>
from evalml.model_understanding.decision_boundary import (
File "[...]/evalml/model_understanding/decision_boundary.py", line 7, in <module>
from evalml.pipelines import BinaryClassificationPipeline
File "[...]/evalml/pipelines/__init__.py", line 2, in <module>
from evalml.pipelines.components import (
File "[...]/evalml/pipelines/components/__init__.py", line 3, in <module>
from evalml.pipelines.components.estimators import (
File "[...]/evalml/pipelines/components/estimators/__init__.py", line 3, in <module>
from evalml.pipelines.components.estimators.classifiers import (
File "[...]/evalml/pipelines/components/estimators/classifiers/__init__.py", line 8, in <module>
from evalml.pipelines.components.estimators.classifiers.xgboost_classifier import (
File "[...]/evalml/pipelines/components/estimators/classifiers/xgboost_classifier.py", line 9, in <module>
from evalml.pipelines.components.transformers import LabelEncoder
File "[...]/evalml/pipelines/components/transformers/__init__.py", line 35, in <module>
from evalml.pipelines.components.transformers.preprocessing import (
File "[...]/evalml/pipelines/components/transformers/preprocessing/__init__.py", line 12, in <module>
from evalml.pipelines.components.transformers.preprocessing.natural_language_featurizer import (
File "[...]/evalml/pipelines/components/transformers/preprocessing/natural_language_featurizer.py", line 5, in <module>
from featuretools.primitives import (
ImportError: cannot import name 'MeanCharactersPerWord' from 'featuretools.primitives' ([...]/featuretools/primitives/__init__.py)
Reproducible example
$ pip install featuretools==1.15.0 evalml
[...]
$ pip show evalml | grep Version
Version: 0.62.0
$ pip show featuretools | grep Version
Version: 1.15.0
$ python -c "import evalml"
Traceback (most recent call last):
[...]
When installing EvalML, your dependency manager (e.g. Poetry) might resolve Featuretools to a version older than 1.16.0 (which happened to me in a complex project with many dependencies). In that case, you can explicitly add Featuretools >= 1.16.0 to your dependencies to force a compatible version. See the following pyproject.toml example for Poetry:
@AlifCor This is a little tricky, but in this case the error is actually caused by the versions of featuretools and nlp-primitives that are getting installed, and not an incompatibility between EvalML and Featuretools.
If you want to use a version of Featuretools <1.16.0 you also need to downgrade your installed version of nlp-primitives to be <2.9.0 and everything should work fine.
@AlifCor After some further discussion, we decided to go ahead with your suggestion and bump the minimum Featuretools version to 0.16.0. This change will be included in the next release of EvalML and will resolve this issue.
Thank you for reporting this and bringing it to our attention!
Problem
The current version constraint for Featuretools is
featuretools >= 1.7.0, < 1.17.0
. However, it seems that EvalML is not compatible with Featuretools < 1.16.0.The following error is raised when importing the latest version of EvalML with Featuretools < 1.16.0 (1.7.0, 1.14.0 and 1.15.0 have been tried):
Reproducible example
$ pip install featuretools==1.16.0 evalml [...] $ python -c "import evalml" [No errors]
Suggested fix
Enforcing Featuretools >= 1.16.0 in setup.cfg
Possible work-around for users
When installing EvalML, your dependency manager (e.g. Poetry) might resolve Featuretools to a version older than 1.16.0 (which happened to me in a complex project with many dependencies). In that case, you can explicitly add Featuretools >= 1.16.0 to your dependencies to force a compatible version. See the following
pyproject.toml
example for Poetry:The text was updated successfully, but these errors were encountered: