alteryx / evalml

EvalML is an AutoML library written in python.
https://evalml.alteryx.com
BSD 3-Clause "New" or "Revised" License
784 stars 87 forks source link

ImportError: cannot import name 'DiversityScore' from 'featuretools.primitives' #3977

Closed evg-rivera closed 1 year ago

evg-rivera commented 1 year ago

Hi! Upon the import

from evalml.automl import AutoMLSearch

I am getting the error message:

ImportError: cannot import name 'DiversityScore' from 'featuretools.primitives' (/miniconda3/lib/python3.8/site-packages/featuretools/primitives/init.py)

Traceback (most recent call last): File "train_evalml.py", line 9, in from evalml.automl import AutoMLSearch File "/miniconda3/lib/python3.8/site-packages/evalml/init.py", line 9, in import evalml.model_understanding File "/miniconda3/lib/python3.8/site-packages/evalml/model_understanding/init.py", line 39, in from evalml.model_understanding.decision_boundary import ( File "/miniconda3/lib/python3.8/site-packages/evalml/model_understanding/decision_boundary.py", line 7, in from evalml.pipelines import BinaryClassificationPipeline File "/miniconda3/lib/python3.8/site-packages/evalml/pipelines/init.py", line 2, in from evalml.pipelines.components import ( File "/miniconda3/lib/python3.8/site-packages/evalml/pipelines/components/init.py", line 3, in from evalml.pipelines.components.estimators import ( File "/miniconda3/lib/python3.8/site-packages/evalml/pipelines/components/estimators/init.py", line 3, in from evalml.pipelines.components.estimators.classifiers import ( File "/miniconda3/lib/python3.8/site-packages/evalml/pipelines/components/estimators/classifiers/init.py", line 8, in from evalml.pipelines.components.estimators.classifiers.xgboost_classifier import ( File "/miniconda3/lib/python3.8/site-packages/evalml/pipelines/components/estimators/classifiers/xgboost_classifier.py", line 9, in from evalml.pipelines.components.transformers import LabelEncoder File "/miniconda3/lib/python3.8/site-packages/evalml/pipelines/components/transformers/init.py", line 37, in from evalml.pipelines.components.transformers.preprocessing import ( File "/miniconda3/lib/python3.8/site-packages/evalml/pipelines/components/transformers/preprocessing/init.py", line 12, in from evalml.pipelines.components.transformers.preprocessing.natural_language_featurizer import ( File "/miniconda3/lib/python3.8/site-packages/evalml/pipelines/components/transformers/preprocessing/natural_language_featurizer.py", line 5, in from featuretools.primitives import (

The code was working till 2 days ago, no changes were done from my side. The original requirements file that was "working" contained:

numpy>=1.21.0 pandas>=1.4.0 scipy>=1.5.0 scikit-learn>=1.1.2 scikit-optimize>=0.9.0 pyzmq>=20.0.0 colorama>=0.4.4 cloudpickle>=1.5.0 click>=7.1.2 requirements-parser>=0.2.0 shap>=0.40.0 statsmodels>=0.12.2 texttable>=1.6.2 woodwork>=0.19.0,!=0.20.0 dask>=2022.2.0, !=2022.10.1 nlp-primitives>=2.9.0 featuretools>=1.16.0 networkx>=2.5,<2.6 evalml==0.62.0 pyarrow>=1.0.1

(The same requirements file now results in the above mentioned error.) I tried with the latest release of evalml as well: numpy>=1.21.0 pandas>=1.5.0 scipy>=1.5.0 scikit-learn>=1.1.2, <1.2.0 scikit-optimize>=0.9.0 pyzmq>=20.0.0 colorama>=0.4.4 cloudpickle>=1.5.0 click>=7.1.2 requirements-parser==0.5.0 shap>=0.40.0 statsmodels>=0.12.2 texttable>=1.6.2 woodwork>= 0.21.1 dask>=2022.2.0, !=2022.10.1 nlp-primitives>=2.9.0 featuretools>=1.16.0 networkx>=2.5,<2.6 evalml==0.67.0

as well as specifying featuretools[nlp]>=1.16.0 but result didn't change.

I hope I am at the right place with my question. It seems to me that the error might be caused by the releases of evalml or underlying packages, however, I was not able to trace the error. Any help would be highly appreciated!

Thank you in advance!

eccabay commented 1 year ago

Hi @evg-rivera, thanks for filing this! Could you post what specific versions of evalml, featuretools, and woodwork you have installed? There are some known incompatibilities with a few versions of these packages.

evg-rivera commented 1 year ago

Hi @eccabay ! Thanks a lot for reaching back. It turned out to be a bug on AWS side, it took time to figure that out. Sorry for false alarm!

eskayML commented 1 year ago

Hello , first time user here, the code still seems to be still outputting this same exact error by @evg-rivera as i follow the documentation to run it on colab

eccabay commented 1 year ago

Hi @eskayML this is a known issue with certain versions of evalml, featuretools, and woodwork. Can you post what versions you have?

eskayML commented 1 year ago
Requirement already satisfied: parso<0.9.0,>=0.8.0 in /usr/local/lib/python3.10/dist-packages (from jedi>=0.16->ipython>=7.8.0->black[jupyter]>=22.3.0->evalml) (0.8.3)
Requirement already satisfied: argon2-cffi in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (21.3.0)
Requirement already satisfied: jupyter-core>=4.6.1 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (5.3.0)
Requirement already satisfied: nbformat in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (5.8.0)
Requirement already satisfied: nbconvert in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (6.5.4)
Requirement already satisfied: nest-asyncio>=1.5 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (1.5.6)
Requirement already satisfied: Send2Trash>=1.8.0 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (1.8.0)
Requirement already satisfied: terminado>=0.8.3 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (0.17.1)
Requirement already satisfied: prometheus-client in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (0.16.0)
Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.10/dist-packages (from pexpect>4.3->ipython>=7.8.0->black[jupyter]>=22.3.0->evalml) (0.7.0)
Requirement already satisfied: wcwidth in /usr/local/lib/python3.10/dist-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=7.8.0->black[jupyter]>=22.3.0->evalml) (0.2.6)
Requirement already satisfied: argon2-cffi-bindings in /usr/local/lib/python3.10/dist-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (21.2.0)
Requirement already satisfied: lxml in /usr/local/lib/python3.10/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (4.9.2)
Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.10/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (4.11.2)
Requirement already satisfied: bleach in /usr/local/lib/python3.10/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (6.0.0)
Requirement already satisfied: defusedxml in /usr/local/lib/python3.10/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (0.7.1)
Requirement already satisfied: entrypoints>=0.2.2 in /usr/local/lib/python3.10/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (0.4)
Requirement already satisfied: jupyterlab-pygments in /usr/local/lib/python3.10/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (0.2.2)
Requirement already satisfied: mistune<2,>=0.8.1 in /usr/local/lib/python3.10/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (0.8.4)
Requirement already satisfied: nbclient>=0.5.0 in /usr/local/lib/python3.10/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (0.7.4)
Requirement already satisfied: pandocfilters>=1.4.1 in /usr/local/lib/python3.10/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (1.5.0)
Requirement already satisfied: tinycss2 in /usr/local/lib/python3.10/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (1.2.1)
Requirement already satisfied: fastjsonschema in /usr/local/lib/python3.10/dist-packages (from nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (2.16.3)
Requirement already satisfied: jsonschema>=2.6 in /usr/local/lib/python3.10/dist-packages (from nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (4.3.3)
Requirement already satisfied: attrs>=17.4.0 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (23.1.0)
Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (0.19.3)
Requirement already satisfied: cffi>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (1.15.1)
Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.10/dist-packages (from beautifulsoup4->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (2.4.1)
Requirement already satisfied: webencodings in /usr/local/lib/python3.10/dist-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (0.5.1)
Requirement already satisfied: pycparser in /usr/local/lib/python3.10/dist-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.5,>=7.5->evalml) (2.21)
Building wheels for collected packages: lime
  Building wheel for lime (setup.py) ... done
  Created wheel for lime: filename=lime-0.2.0.1-py3-none-any.whl size=283839 sha256=326284d00ac9812e376d1fa5c417f236bf3e2db71ad560868b6d6c0971cf1737
  Stored in directory: /root/.cache/pip/wheels/fd/a2/af/9ac0a1a85a27f314a06b39e1f492bee1547d52549a4606ed89
Successfully built lime
Installing collected packages: texttable, kaleido, vowpalwabbit, tokenize-rt, slicer, pyaml, pathspec, mypy-extensions, jedi, hijri-converter, deprecated, colorama, holidays, black, woodwork, sktime, shap, scikit-optimize, lime, catboost, pmdarima, featuretools, category-encoders, nlp-primitives, evalml
  Attempting uninstall: holidays
    Found existing installation: holidays 0.25
    Uninstalling holidays-0.25:
      Successfully uninstalled holidays-0.25
Successfully installed black-23.3.0 catboost-1.2 category-encoders-2.5.1.post0 colorama-0.4.6 deprecated-1.2.14 evalml-0.76.0 featuretools-1.26.0 hijri-converter-2.3.1 holidays-0.20 jedi-0.18.2 kaleido-0.2.1 lime-0.2.0.1 mypy-extensions-1.0.0 nlp-primitives-2.11.0 pathspec-0.11.1 pmdarima-2.0.3 pyaml-23.5.9 scikit-optimize-0.9.0 shap-0.41.0 sktime-0.17.0 slicer-0.0.7 texttable-1.6.7 tokenize-rt-5.0.0 vowpalwabbit-9.8.0 woodwork-0.24.0

Here is the output from the installation. The versions of what you asked are on the last line

PS: I'm running on colab