dmlc / dgl

Python package built to ease deep learning on graph, on top of existing DL frameworks.
http://dgl.ai
Apache License 2.0
13.36k stars 3k forks source link

ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version GLIBCXX_3.4.29 not found #5463

Open mufeili opened 1 year ago

mufeili commented 1 year ago

🐛 Bug

To Reproduce

Steps to reproduce the behavior:

pip install torch==1.12.0+cu116 torchvision==0.13.0+cu116 torchaudio==0.12.0 --extra-index-url https://download.pytorch.org/whl/cu116
conda install -c dglteam/label/cu116 dgl
pip install ogb
pip install torchmetrics
import dgl

Expected behavior

Environment

Additional context

I can address the issue by

pip uninstall scipy
pip install scipy
jermainewang commented 1 year ago

Bug confirmed. Error trace:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/dgl/__init__.py", line 22, in <module>
    from . import distributed
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/dgl/distributed/__init__.py", line 5, in <module>
    from .dist_graph import DistGraph, DistGraphServer, edge_split, node_split
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/dgl/distributed/dist_graph.py", line 11, in <module>
    from ..convert import heterograph as dgl_heterograph
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/dgl/convert.py", line 4, in <module>
    from scipy.sparse import spmatrix
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/scipy/sparse/__init__.py", line 283, in <module>
    from . import csgraph
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/scipy/sparse/csgraph/__init__.py", line 185, in <module>
    from ._laplacian import laplacian
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/scipy/sparse/csgraph/_laplacian.py", line 7, in <module>
    from scipy.sparse.linalg import LinearOperator
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/scipy/sparse/linalg/__init__.py", line 120, in <module>
    from ._isolve import *
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/scipy/sparse/linalg/_isolve/__init__.py", line 6, in <module>
    from .lgmres import lgmres
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/scipy/sparse/linalg/_isolve/lgmres.py", line 7, in <module>
    from scipy.linalg import get_blas_funcs
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/scipy/linalg/__init__.py", line 209, in <module>
    from ._matfuncs import *
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/scipy/linalg/_matfuncs.py", line 19, in <module>
    from ._matfuncs_sqrtm import sqrtm
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/scipy/linalg/_matfuncs_sqrtm.py", line 24, in <module>
    from ._matfuncs_sqrtm_triu import within_block_loop
ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /ebs/miniconda3/envs/test/lib/python3.8/site-packages/scipy/linalg/_matfuncs_sqrtm_triu.cpython-38-x86_64-linux-gnu.so)

SciPy version is 1.10.0. However, I tried the workaround (reinstalling scipy to 1.10.1), but got a different error:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/dgl/__init__.py", line 22, in <module>
    from . import distributed
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/dgl/distributed/__init__.py", line 5, in <module>
    from .dist_graph import DistGraph, DistGraphServer, edge_split, node_split
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/dgl/distributed/dist_graph.py", line 21, in <module>
    from .partition import load_partition, load_partition_feats, load_partition_book
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/dgl/distributed/partition.py", line 13, in <module>
    from ..data.utils import load_graphs, save_graphs, load_tensors, save_tensors
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/dgl/data/__init__.py", line 7, in <module>
    from . import citation_graph as citegrh
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/dgl/data/citation_graph.py", line 14, in <module>
    from .utils import save_graphs, load_graphs, save_info, load_info, makedirs, _get_dgl_url
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/dgl/data/utils.py", line 12, in <module>
    import requests
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/requests/__init__.py", line 45, in <module>
    from .exceptions import RequestsDependencyWarning
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/requests/exceptions.py", line 9, in <module>
    from .compat import JSONDecodeError as CompatJSONDecodeError
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/requests/compat.py", line 13, in <module>
    import charset_normalizer as chardet
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/charset_normalizer/__init__.py", line 23, in <module>
    from charset_normalizer.api import from_fp, from_path, from_bytes, normalize
  File "/ebs/miniconda3/envs/test/lib/python3.8/site-packages/charset_normalizer/api.py", line 10, in <module>
    from charset_normalizer.md import mess_ratio
  File "charset_normalizer/md.py", line 5, in <module>
ImportError: cannot import name 'COMMON_SAFE_ASCII_CHARACTERS' from 'charset_normalizer.constant' (/ebs/miniconda3/envs/test/lib/python3.8/site-packages/charset_normalizer/constant.py)

The error comes from the requests package and I found the conda environment seems to be messed up (there are two versions installed requests-2.28.2 and requests-2.28.1). I uninstall all of them and reinstall requests and everything now works.

@BarclayII Any clue? Look like there's sth. wrong with our conda dependencies.

TraffickerCH commented 5 months ago

I solved the problem by uninstalling scipy and then re-downloading it