AutoViML / AutoViz

Automatically Visualize any dataset, any size with a single line of code. Created by Ram Seshadri. Collaborators Welcome. Permission Granted upon Request.
Apache License 2.0
1.7k stars 196 forks source link

A clean install fails on import #86

Closed ahasha closed 1 year ago

ahasha commented 1 year ago

I attempted to install the latest version (0.1.604) in a fresh poetry project and the quickstart code fails on import:

   ...: AV = AutoViz_Class()

---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
File ~/Library/Caches/pypoetry/virtualenvs/autoviz-trial-x6XO0Xb6-py3.9/lib/python3.9/site-packages/holoviews/plotting/bokeh/annotation.py:17
     16 try:
---> 17     from bokeh.models.arrow_heads import TeeHead, NormalHead
     18     arrow_start = {'<->': NormalHead, '<|-|>': NormalHead}

ModuleNotFoundError: No module named 'bokeh.models.arrow_heads'

During handling of the above exception, another exception occurred:

ModuleNotFoundError                       Traceback (most recent call last)
Cell In[1], line 1
----> 1 from autoviz import AutoViz_Class
      2 AV = AutoViz_Class()

File ~/Library/Caches/pypoetry/virtualenvs/autoviz-trial-x6XO0Xb6-py3.9/lib/python3.9/site-packages/autoviz/__init__.py:3
      1 name = "autoviz"
      2 from .__version__ import __version__, __holo_version__
----> 3 from .AutoViz_Class import AutoViz_Class
      4 from .classify_method import data_cleaning_suggestions
      5 if __name__ == "__main__":

File ~/Library/Caches/pypoetry/virtualenvs/autoviz-trial-x6XO0Xb6-py3.9/lib/python3.9/site-packages/autoviz/AutoViz_Class.py:61
     59 from sklearn.model_selection import train_test_split
     60 ##########################################################################################
---> 61 from autoviz.AutoViz_Holo import AutoViz_Holo
     62 from autoviz.AutoViz_Utils import *
     63 from autoviz.AutoViz_NLP import draw_word_clouds

File ~/Library/Caches/pypoetry/virtualenvs/autoviz-trial-x6XO0Xb6-py3.9/lib/python3.9/site-packages/autoviz/AutoViz_Holo.py:5
      3 import pandas as pd
      4 ############# Import from autoviz.AutoViz_Class the following libraries #######
----> 5 from autoviz.AutoViz_Utils import *
      6 ##############   make sure you use: conda install -c pyviz hvplot ###############
      7 import hvplot.pandas  # noqa

File ~/Library/Caches/pypoetry/virtualenvs/autoviz-trial-x6XO0Xb6-py3.9/lib/python3.9/site-packages/autoviz/AutoViz_Utils.py:61
     59 from sklearn.model_selection import train_test_split
     60 ######## This is where we import HoloViews related libraries  #########
---> 61 import hvplot.pandas
     62 import holoviews as hv
     63 from holoviews import opts

File ~/Library/Caches/pypoetry/virtualenvs/autoviz-trial-x6XO0Xb6-py3.9/lib/python3.9/site-packages/hvplot/__init__.py:69
     65 import holoviews as _hv
     67 from holoviews import Store, render  # noqa
---> 69 from .converter import HoloViewsConverter
     70 from .interactive import Interactive
     71 from .ui import explorer  # noqa

File ~/Library/Caches/pypoetry/virtualenvs/autoviz-trial-x6XO0Xb6-py3.9/lib/python3.9/site-packages/hvplot/converter.py:23
     16 from holoviews.core.util import max_range
     17 from holoviews.element import (
     18     Curve, Scatter, Area, Bars, BoxWhisker, Dataset, Distribution,
     19     Table, HeatMap, Image, HexTiles, QuadMesh, Bivariate, Histogram,
     20     Violin, Contours, Polygons, Points, Path, Labels, RGB, ErrorBars,
     21     VectorField, Rectangles, Segments
     22 )
---> 23 from holoviews.plotting.bokeh import OverlayPlot, colormap_generator
     24 from holoviews.plotting.util import process_cmap
     25 from holoviews.operation import histogram

File ~/Library/Caches/pypoetry/virtualenvs/autoviz-trial-x6XO0Xb6-py3.9/lib/python3.9/site-packages/holoviews/plotting/bokeh/__init__.py:26
     23 except:
     24     DFrame = None
---> 26 from .annotation import (
     27     TextPlot, LineAnnotationPlot, BoxAnnotationPlot, SplinePlot, ArrowPlot,
     28     DivPlot, LabelsPlot, SlopePlot
     29 )
     30 from ..plot import PlotSelector
     31 from ..util import fire

File ~/Library/Caches/pypoetry/virtualenvs/autoviz-trial-x6XO0Xb6-py3.9/lib/python3.9/site-packages/holoviews/plotting/bokeh/annotation.py:22
     19     arrow_end = {'->': NormalHead, '-[': TeeHead, '-|>': NormalHead,
     20                  '-': None}
     21 except:
---> 22     from bokeh.models.arrow_heads import OpenHead, NormalHead
     23     arrow_start = {'<->': NormalHead, '<|-|>': NormalHead}
     24     arrow_end = {'->': NormalHead, '-[': OpenHead, '-|>': NormalHead,
     25                  '-': None}

ModuleNotFoundError: No module named 'bokeh.models.arrow_heads'

I have tried using Python 3.10 and 3.9 with the same results. I know your setup instructions call for Python 3.7, but this looks more like an incompatibility with recent versions of bokeh that could be resolved by constraining the bokeh dependency in setup.py. The install works if I peg bokeh to 2.4.2

AutoViML commented 1 year ago

Check out the latest setup.py. It should fix it. On Thursday, May 25, 2023 at 11:29:51 AM EDT, Alex Hasha @.***> wrote:

I attempted to install the latest version (0.1.604) in a fresh poetry project and the quickstart code fails on import: ...: AV = AutoViz_Class()


ModuleNotFoundError Traceback (most recent call last) File ~/Library/Caches/pypoetry/virtualenvs/autoviz-trial-x6XO0Xb6-py3.9/lib/python3.9/site-packages/holoviews/plotting/bokeh/annotation.py:17 16 try: ---> 17 from bokeh.models.arrow_heads import TeeHead, NormalHead 18 arrow_start = {'<->': NormalHead, '<|-|>': NormalHead}

ModuleNotFoundError: No module named 'bokeh.models.arrow_heads'

During handling of the above exception, another exception occurred:

ModuleNotFoundError Traceback (most recent call last) Cell In[1], line 1 ----> 1 from autoviz import AutoViz_Class 2 AV = AutoViz_Class()

File ~/Library/Caches/pypoetry/virtualenvs/autoviz-trial-x6XO0Xb6-py3.9/lib/python3.9/site-packages/autoviz/init.py:3 1 name = "autoviz" 2 from .version import version, holo_version__ ----> 3 from .AutoViz_Class import AutoViz_Class 4 from .classify_method import data_cleaning_suggestions 5 if name == "main__":

File ~/Library/Caches/pypoetry/virtualenvs/autoviz-trial-x6XO0Xb6-py3.9/lib/python3.9/site-packages/autoviz/AutoViz_Class.py:61 59 from sklearn.model_selection import train_test_split 60 ########################################################################################## ---> 61 from autoviz.AutoViz_Holo import AutoViz_Holo 62 from autoviz.AutoViz_Utils import * 63 from autoviz.AutoViz_NLP import draw_word_clouds

File ~/Library/Caches/pypoetry/virtualenvs/autoviz-trial-x6XO0Xb6-py3.9/lib/python3.9/site-packages/autoviz/AutoViz_Holo.py:5 3 import pandas as pd 4 ############# Import from autoviz.AutoViz_Class the following libraries ####### ----> 5 from autoviz.AutoViz_Utils import * 6 ############## make sure you use: conda install -c pyviz hvplot ############### 7 import hvplot.pandas # noqa

File ~/Library/Caches/pypoetry/virtualenvs/autoviz-trial-x6XO0Xb6-py3.9/lib/python3.9/site-packages/autoviz/AutoViz_Utils.py:61 59 from sklearn.model_selection import train_test_split 60 ######## This is where we import HoloViews related libraries ######### ---> 61 import hvplot.pandas 62 import holoviews as hv 63 from holoviews import opts

File ~/Library/Caches/pypoetry/virtualenvs/autoviz-trial-x6XO0Xb6-py3.9/lib/python3.9/site-packages/hvplot/init.py:69 65 import holoviews as _hv 67 from holoviews import Store, render # noqa ---> 69 from .converter import HoloViewsConverter 70 from .interactive import Interactive 71 from .ui import explorer # noqa

File ~/Library/Caches/pypoetry/virtualenvs/autoviz-trial-x6XO0Xb6-py3.9/lib/python3.9/site-packages/hvplot/converter.py:23 16 from holoviews.core.util import max_range 17 from holoviews.element import ( 18 Curve, Scatter, Area, Bars, BoxWhisker, Dataset, Distribution, 19 Table, HeatMap, Image, HexTiles, QuadMesh, Bivariate, Histogram, 20 Violin, Contours, Polygons, Points, Path, Labels, RGB, ErrorBars, 21 VectorField, Rectangles, Segments 22 ) ---> 23 from holoviews.plotting.bokeh import OverlayPlot, colormap_generator 24 from holoviews.plotting.util import process_cmap 25 from holoviews.operation import histogram

File ~/Library/Caches/pypoetry/virtualenvs/autoviz-trial-x6XO0Xb6-py3.9/lib/python3.9/site-packages/holoviews/plotting/bokeh/init.py:26 23 except: 24 DFrame = None ---> 26 from .annotation import ( 27 TextPlot, LineAnnotationPlot, BoxAnnotationPlot, SplinePlot, ArrowPlot, 28 DivPlot, LabelsPlot, SlopePlot 29 ) 30 from ..plot import PlotSelector 31 from ..util import fire

File ~/Library/Caches/pypoetry/virtualenvs/autoviz-trial-x6XO0Xb6-py3.9/lib/python3.9/site-packages/holoviews/plotting/bokeh/annotation.py:22 19 arrow_end = {'->': NormalHead, '-[': TeeHead, '-|>': NormalHead, 20 '-': None} 21 except: ---> 22 from bokeh.models.arrow_heads import OpenHead, NormalHead 23 arrow_start = {'<->': NormalHead, '<|-|>': NormalHead} 24 arrow_end = {'->': NormalHead, '-[': OpenHead, '-|>': NormalHead, 25 '-': None}

ModuleNotFoundError: No module named 'bokeh.models.arrow_heads'

I have tried using Python 3.10 and 3.9 with the same results. I know your setup instructions call for Python 3.7, but this looks more like an incompatibility with recent versions of bokeh that could be resolved by constraining the bokeh dependency in setup.py. The install works if I peg bokeh to 2.4.2

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.***>

AutoViML commented 1 year ago

Ok it works fine in Colab and Kaggle kernels where "clean install" is the norm. It must be something wrong with your machine.

Try these and compare your versions to what is mentioned in the requirements.txt file:

import bokeh
bokeh.__version__

import hvplot
hvplot.__version__

I am sorry I can't help you any further.

ImElan commented 1 year ago

@AutoViML I think this fix is not published as a new version in pypi from looking at the release history. Can you please publish this fix ? Thanks

omrihar commented 1 year ago

I have the same issue. The "fix" that was puhsed is simply to restrict bokeh to version 2.4.2. If this is satisfied together with hvplot in version 0.7.3 it works for me. So, to reiterate, until this is pushed you can make it work by running:

pip install hvplot==0.7.3 bokeh==2.4.2
AutoViML commented 1 year ago

Hi @omrihar @ImElan @ahasha 👍 I have updated the requirements.txt and setup.py files. Please go ahead and test it. Should work now. Thanks for the feedback, AutoVimal

ImElan commented 1 year ago

Thanks @omrihar @AutoViML