1

I am running some code on compute servers at my university and I'm running into the following error when my code was trying to import scipy:

ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /var/lib/condor/execute/slot1/dir_743791/gcn_test/lib/python3.8/site-packages/scipy/linalg/_matfuncs_sqrtm_triu.cpython-38-x86_64-linux-gnu.so)

I ran

$ strings /lib64/libstdc++.so.6 | grep GLIBCXX

and got the output

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_DEBUG_MESSAGE_LENGTH

So GLIBCXX_3.4.26 is not present.

I've looked at the following threads:

Where can I find GLIBCXX_3.4.29?

Anaconda ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found

libstdc++.so.6: version `GLIBCXX_3.4.20' not found

and many more, but to summarise my attempts:

  1. I ran conda install libstdc++-ng and conda install libgcc (and updated them too via conda update libstdc++-ng)
  2. I changed the path to the appropriate location and ran $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/miniconda3/lib
  3. I removed old versions of libstdc++ from my library folder

I also don't have sudo/admin permissions so I can't do that. All of these resulted in the same error. All methods getting the right GLIBCXX file seem to either involve updating libstdc++-ng, libgcc, or some sudo command. I tried the former two and can't do the third so I'd appreciate any insight into what I'm missing and how I can fix this. Is there a way I can deal with this without going to a system admin?

P.S I'm not sure what the relevant system details are but I'm running this on python 3.8.16 on Linux CentOS7.

EDIT: I've included conda list info below:

# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                        main  
_openmp_mutex             5.1                       1_gnu  
absl-py                   1.4.0                    pypi_0    pypi
appdirs                   1.4.4              pyhd3eb1b0_0  
astunparse                1.6.3                    pypi_0    pypi
blas                      1.0                         mkl  
brotlipy                  0.7.0           py38h27cfd23_1003  
ca-certificates           2023.01.10           h06a4308_0  
cachetools                5.3.0                    pypi_0    pypi
certifi                   2023.5.7         py38h06a4308_0  
cffi                      1.15.1           py38h5eee18b_3  
chardet                   5.1.0                    pypi_0    pypi
charset-normalizer        3.1.0                    pypi_0    pypi
contourpy                 1.0.7                    pypi_0    pypi
cryptography              39.0.1           py38h9ce1e76_0  
cycler                    0.11.0                   pypi_0    pypi
flatbuffers               23.3.3                   pypi_0    pypi
fonttools                 4.39.0                   pypi_0    pypi
gast                      0.4.0                    pypi_0    pypi
google-auth               2.16.2                   pypi_0    pypi
google-auth-oauthlib      0.4.6                    pypi_0    pypi
google-pasta              0.2.0                    pypi_0    pypi
grpcio                    1.51.3                   pypi_0    pypi
h5py                      3.8.0                    pypi_0    pypi
idna                      3.4              py38h06a4308_0  
importlib-metadata        6.0.0                    pypi_0    pypi
importlib-resources       5.12.0                   pypi_0    pypi
intel-openmp              2021.4.0          h06a4308_3561  
keras                     2.11.0                   pypi_0    pypi
kiwisolver                1.4.4                    pypi_0    pypi
ld_impl_linux-64          2.38                 h1181459_1  
libclang                  15.0.6.1                 pypi_0    pypi
libcxx                    14.0.6               h83ecd13_0  
libcxxabi                 14.0.6               h06a4308_0  
libffi                    3.4.2                h6a678d5_6  
libgcc-ng                 11.2.0               h1234567_1  
libgfortran-ng            11.3.0              h69a702a_19    conda-forge
libgfortran5              11.3.0              h39d6296_19    conda-forge
libgomp                   11.2.0               h1234567_1  
libstdcxx-ng              11.2.0               h1234567_1  
llvm-openmp               14.0.6               h9e868ea_0  
markdown                  3.4.1                    pypi_0    pypi
markupsafe                2.1.2                    pypi_0    pypi
matplotlib                3.7.1                    pypi_0    pypi
mkl                       2021.4.0           h06a4308_640  
mkl-service               2.4.0            py38h7f8727e_0  
mkl_fft                   1.3.1            py38hd3c417c_0  
mkl_random                1.2.2            py38h51133e4_0  
ncurses                   6.4                  h6a678d5_0  
networkx                  3.0                      pypi_0    pypi
numpy                     1.24.2                   pypi_0    pypi
numpy-base                1.23.5           py38h31eccc5_0  
oauthlib                  3.2.2                    pypi_0    pypi
openssl                   1.1.1t               h7f8727e_0  
opt-einsum                3.3.0                    pypi_0    pypi
packaging                 23.0             py38h06a4308_0  
pillow                    9.4.0                    pypi_0    pypi
pip                       23.0.1           py38h06a4308_0  
pooch                     1.4.0              pyhd3eb1b0_0  
protobuf                  3.19.6                   pypi_0    pypi
pyasn1                    0.4.8                    pypi_0    pypi
pyasn1-modules            0.2.8                    pypi_0    pypi
pycparser                 2.21               pyhd3eb1b0_0  
pyopenssl                 23.0.0           py38h06a4308_0  
pyparsing                 3.0.9                    pypi_0    pypi
pysocks                   1.7.1            py38h06a4308_0  
python                    3.8.16               h7a1cb2a_3  
python-dateutil           2.8.2                    pypi_0    pypi
readline                  8.2                  h5eee18b_0  
requests                  2.28.2                   pypi_0    pypi
requests-oauthlib         1.3.1                    pypi_0    pypi
rsa                       4.9                      pypi_0    pypi
scipy                     1.10.1           py38h14f4228_0  
setuptools                66.0.0           py38h06a4308_0  
six                       1.16.0             pyhd3eb1b0_1  
sqlite                    3.41.2               h5eee18b_0  
tensorboard               2.11.2                   pypi_0    pypi
tensorboard-data-server   0.6.1                    pypi_0    pypi
tensorboard-plugin-wit    1.8.1                    pypi_0    pypi
tensorflow                2.11.0                   pypi_0    pypi
tensorflow-estimator      2.11.0                   pypi_0    pypi
tensorflow-io-gcs-filesystem 0.31.0                   pypi_0    pypi
termcolor                 2.2.0                    pypi_0    pypi
tk                        8.6.12               h1ccaba5_0  
typing-extensions         4.5.0                    pypi_0    pypi
urllib3                   1.26.15          py38h06a4308_0  
werkzeug                  2.2.3                    pypi_0    pypi
wheel                     0.38.4           py38h06a4308_0  
wrapt                     1.15.0                   pypi_0    pypi
xz                        5.2.10               h5eee18b_1  
zipp                      3.15.0                   pypi_0    pypi
zlib                      1.2.13               h5eee18b_0  
Employed Russian
  • 199,314
  • 34
  • 295
  • 362
User20354
  • 113
  • 4
  • I think getting scipy installed correctly is more likely to be successful than trying to modify libstdc++ – Alan Birtles May 22 '23 at 17:46
  • It's working locally. So it seems like it's installed correctly? – User20354 May 22 '23 at 17:51
  • and is "locally" on centos 7? – Alan Birtles May 22 '23 at 17:53
  • Ah that's fair. "locally" here is my macOS. What's the right way to troubleshoot whether it's a scipy installation problem or libstdc++ problem on a compute server? (This might be a too specific problem) – User20354 May 22 '23 at 17:57
  • it's definitely a scipy problem, there's nothing wrong with libstdc++, it's just an old version. I'd guess scipy was installed incorrectly in some way, reinstalling it, maybe from yum would be one possible solution – Alan Birtles May 22 '23 at 18:00
  • Update: I did rebuild the environment from scratch but it still did not work :/ I built it in centos7 but ran into the exact same issue. – User20354 May 22 '23 at 18:48
  • 2
    Correctly set up Conda environments should never require you to manipulate `LD_LIBRARY_PATH` to function correctly and I really hope **(3)** is not removing system libraries. There are crucial details omitted about the environment (add `conda list` and `conda info` to question body). Without more info, I would try recreating the environment with `conda-forge` channel prioritized - last I checked, they are a bit more explicit about supplying a consistent sysroot compared to `defaults` (e.g., `anaconda`). – merv May 22 '23 at 18:59
  • I deleted one extra copy of libstdc++.so that was created while I was trying to fix this. Nothing else. I've edited the question body to include the conda list output. – User20354 May 22 '23 at 19:24

0 Answers0