jmschrei / pomegranate

Fast, flexible and easy to use probabilistic modelling in Python.
http://pomegranate.readthedocs.org/en/latest/
MIT License
3.35k stars 589 forks source link

[BUG] ImportError: cannot import name 'csr_matrix' from 'scipy.sparse' (unknown location) #1048

Closed suciokhan closed 2 months ago

suciokhan commented 1 year ago

Describe the bug

I just pip-installed Pomegranate into an Anaconda environment after receiving a similar error after conda installation. I'm attempting to do the example here: https://pomegranate.readthedocs.io/en/latest/tutorials/B_Model_Tutorial_6_Bayesian_Networks.html

When I run from pomegranate.distributions import Categorical I receive the following error chain:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
Cell In[4], line 5
      2 import seaborn; seaborn.set_style('whitegrid')
      3 import torch
----> 5 from pomegranate.distributions import Categorical
      6 from pomegranate.distributions import ConditionalCategorical
      7 from pomegranate.bayesian_network import BayesianNetwork

File [~/anaconda3/envs/pyrca/lib/python3.9/site-packages/pomegranate/distributions/__init__.py:1](https://file+.vscode-resource.vscode-cdn.net/home/suciokhan/rca/~/anaconda3/envs/pyrca/lib/python3.9/site-packages/pomegranate/distributions/__init__.py:1)
----> 1 from .bernoulli import Bernoulli
      2 from .categorical import Categorical
      3 from .conditional_categorical import ConditionalCategorical

File [~/anaconda3/envs/pyrca/lib/python3.9/site-packages/pomegranate/distributions/bernoulli.py:6](https://file+.vscode-resource.vscode-cdn.net/home/suciokhan/rca/~/anaconda3/envs/pyrca/lib/python3.9/site-packages/pomegranate/distributions/bernoulli.py:6)
      1 # bernoulli.py
      2 # Contact: Jacob Schreiber 
      4 import torch
----> 6 from .._utils import _cast_as_tensor
      7 from .._utils import _cast_as_parameter
      8 from .._utils import _update_parameter

File [~/anaconda3/envs/pyrca/lib/python3.9/site-packages/pomegranate/_utils.py:8](https://file+.vscode-resource.vscode-cdn.net/home/suciokhan/rca/~/anaconda3/envs/pyrca/lib/python3.9/site-packages/pomegranate/_utils.py:8)
      5 import torch
      6 import collections
----> 8 from apricot import FacilityLocationSelection
      9 from apricot import FeatureBasedSelection
     12 eps = torch.finfo(torch.float32).eps

File [~/anaconda3/envs/pyrca/lib/python3.9/site-packages/apricot/__init__.py:4](https://file+.vscode-resource.vscode-cdn.net/home/suciokhan/rca/~/anaconda3/envs/pyrca/lib/python3.9/site-packages/apricot/__init__.py:4)
      1 # __init__.py
      2 # Author: Jacob Schreiber 
----> 4 from .functions import FeatureBasedSelection
      5 from .functions import MaxCoverageSelection
      7 from .functions import FacilityLocationSelection

File [~/anaconda3/envs/pyrca/lib/python3.9/site-packages/apricot/functions/__init__.py:4](https://file+.vscode-resource.vscode-cdn.net/home/suciokhan/rca/~/anaconda3/envs/pyrca/lib/python3.9/site-packages/apricot/functions/__init__.py:4)
      1 # __init__.py
      2 # Author: Jacob Schreiber 
----> 4 from .featureBased import FeatureBasedSelection
      5 from .maxCoverage import MaxCoverageSelection
      7 from .facilityLocation import FacilityLocationSelection

File [~/anaconda3/envs/pyrca/lib/python3.9/site-packages/apricot/functions/featureBased.py:7](https://file+.vscode-resource.vscode-cdn.net/home/suciokhan/rca/~/anaconda3/envs/pyrca/lib/python3.9/site-packages/apricot/functions/featureBased.py:7)
      4 import math
      5 import numpy
----> 7 from .base import BaseSelection
      8 from ..optimizers import LazyGreedy
      9 from ..optimizers import ApproximateLazyGreedy

File [~/anaconda3/envs/pyrca/lib/python3.9/site-packages/apricot/functions/base.py:12](https://file+.vscode-resource.vscode-cdn.net/home/suciokhan/rca/~/anaconda3/envs/pyrca/lib/python3.9/site-packages/apricot/functions/base.py:12)
      9 import numpy
     10 from tqdm import tqdm
---> 12 from ..optimizers import BaseOptimizer
     13 from ..optimizers import NaiveGreedy
     14 from ..optimizers import LazyGreedy

File [~/anaconda3/envs/pyrca/lib/python3.9/site-packages/apricot/optimizers.py:11](https://file+.vscode-resource.vscode-cdn.net/home/suciokhan/rca/~/anaconda3/envs/pyrca/lib/python3.9/site-packages/apricot/optimizers.py:11)
      7 import scipy
      9 from tqdm import tqdm
---> 11 from .utils import PriorityQueue
     12 from .utils import check_random_state
     13 from .utils import _calculate_pairwise_distances

File [~/anaconda3/envs/pyrca/lib/python3.9/site-packages/apricot/utils.py:17](https://file+.vscode-resource.vscode-cdn.net/home/suciokhan/rca/~/anaconda3/envs/pyrca/lib/python3.9/site-packages/apricot/utils.py:17)
     14 from heapq import heappop
     15 from heapq import heapify
---> 17 from scipy.sparse import csr_matrix
     19 from sklearn.metrics import pairwise_distances
     20 from sklearn.neighbors import KNeighborsTransformer

ImportError: cannot import name 'csr_matrix' from 'scipy.sparse' (unknown location)