google / lightweight_mmm

LightweightMMM 🦇 is a lightweight Bayesian Marketing Mix Modeling (MMM) library that allows users to easily train MMMs and obtain channel attribution information.
https://lightweight-mmm.readthedocs.io/en/latest/index.html
Apache License 2.0
889 stars 190 forks source link

Dependency issue in the Plot module #144

Open etiusane-upright opened 1 year ago

etiusane-upright commented 1 year ago

Seems like the numba _internal module has been changed in a way that broke the decorators module. Not a proper developer myself, so I couldn't track down the more specific issue, but it's possible this is just a naming issue..?

There seems to be some changes to the _internal.c module, but I don't see what the issue would be as I don't fully understand how the setup works. image

Full error message:


SystemError Traceback (most recent call last) in ----> 1 from lightweight_mmm import plot

13 frames /usr/local/lib/python3.8/dist-packages/lightweight_mmm/plot.py in 22 from typing import Any, List, Optional, Sequence, Tuple 23 ---> 24 import arviz 25 import jax 26 import jax.numpy as jnp

/usr/local/lib/python3.8/dist-packages/arviz/init.py in 31 32 from .data import ---> 33 from .plots import 34 from .plots.backends import 35 from .stats import

/usr/local/lib/python3.8/dist-packages/arviz/plots/init.py in 1 """Plotting functions.""" ----> 2 from .autocorrplot import plot_autocorr 3 from .bpvplot import plot_bpv 4 from .compareplot import plot_compare 5 from .densityplot import plot_density

/usr/local/lib/python3.8/dist-packages/arviz/plots/autocorrplot.py in 3 from ..rcparams import rcParams 4 from ..utils import _var_names ----> 5 from .plot_utils import default_grid, filter_plotters_list, get_plotting_function, xarray_var_iter 6 7

/usr/local/lib/python3.8/dist-packages/arviz/plots/plot_utils.py in 15 16 from ..rcparams import rcParams ---> 17 from ..stats.density_utils import kde 18 19 KwargSpec = Dict[str, Any]

/usr/local/lib/python3.8/dist-packages/arviz/stats/init.py in 2 """Statistical tests and diagnostics for ArviZ.""" 3 from .density_utils import ----> 4 from .diagnostics import 5 from .stats import 6 from .stats_refitting import

/usr/local/lib/python3.8/dist-packages/arviz/stats/diagnostics.py in 11 from ..utils import Numba, _numba_var, _stack, _var_names 12 from .density_utils import histogram as _histogram ---> 13 from .stats_utils import _circular_standard_deviation, _sqrt 14 from .stats_utils import autocov as _autocov 15 from .stats_utils import not_valid as _not_valid

/usr/local/lib/python3.8/dist-packages/arviz/stats/stats_utils.py in 531 532 @conditional_vect --> 533 def _sqrt(a_a, b_b): 534 return (a_a + b_b) ** 0.5 535

/usr/local/lib/python3.8/dist-packages/arviz/utils.py in conditional_vect(function, **kwargs) 295 296 if function: --> 297 return wrapper(function) 298 else: 299 return wrapper

/usr/local/lib/python3.8/dist-packages/arviz/utils.py in wrapper(function) 288 def wrapper(function): 289 try: --> 290 numba = importlib.import_module("numba") 291 return numba.vectorize(**kwargs)(function) 292

/usr/lib/python3.8/importlib/init.py in import_module(name, package) 125 break 126 level += 1 --> 127 return _bootstrap._gcd_import(name[level:], package, level) 128 129

/usr/local/lib/python3.8/dist-packages/numba/init.py in 40 41 # Re-export vectorize decorators and the thread layer querying function ---> 42 from numba.np.ufunc import (vectorize, guvectorize, threading_layer, 43 get_num_threads, set_num_threads, 44 set_parallel_chunksize, get_parallel_chunksize,

/usr/local/lib/python3.8/dist-packages/numba/np/ufunc/init.py in 1 # -- coding: utf-8 -- 2 ----> 3 from numba.np.ufunc.decorators import Vectorize, GUVectorize, vectorize, guvectorize 4 from numba.np.ufunc._internal import PyUFunc_None, PyUFunc_Zero, PyUFunc_One 5 from numba.np.ufunc import _internal, array_exprs

/usr/local/lib/python3.8/dist-packages/numba/np/ufunc/decorators.py in 1 import inspect 2 ----> 3 from numba.np.ufunc import _internal 4 from numba.np.ufunc.parallel import ParallelUFuncBuilder, ParallelGUFuncBuilder 5

SystemError: initialization of _internal failed without raising an exception

michevan commented 1 year ago

Thanks a lot for flagging this! I just wanted to share a link to our new "support" section in the readme to give you some more information on how we can and cannot support such issues at the moment.

That said, I would recommend trying to reinstall everything in a new virtual environment, and hopefully that will fix these dependency issues.