version `GLIBC_2.17' not found when running Songbird

Dear QIIME2,

I followed the recommendation to install songbird from Here. All the packages are successfully installed.
Also, I checked the version of TensorFlow is 1.10.0 and numpy is 1.14.5.

However, when I ran the command:
qiime songbird multinomial
--i-table ITS/ITS-ID-filtered-table-cr-80-update.qza
--m-metadata-file ITS/ITS-metadata.txt
--p-formula "Winery+Stages"
--o-differentials ITS/songbird/differentials.qza
--o-regression-stats ITS/songbird/regression-stats.qza
--o-regression-biplot ITS/songbird/regression-biplot.qza

It shows the error:
ImportError: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by /storage/home/hxw346/.conda/envs/qiime2-2019.7/lib/python3.6/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so)

Then I check my GLIBC version in ~/qiime2-2019.7/lib/python3.6/site-packages is 0.6.1 which I think I need to upgrade that version to 2.17. But as I found the way to upgrade GLIBC, it seems there is a high risk to do that.

So I wonder is there any way that I can use songbird without facing the GLIBC issue. Or any plugin that is simliar to songbird.

The qiime2 version is 2019.7 installed by conda.

I attached the error summary here:
songbird error.txt (13.6 KB)

Thank you.

Good morning!

The best option is to make a new conda environment for songbird, separate from your qiime2 conda environment. Like this
conda create -n songbird <software to install goes here>

So then you can conda activate songbird to use songbird without messing up the qiime environment.

Let us know if this works for you!
Colin

Hi Colin,

Thank you for the quick response. However, other errors show up when I use the command
songbird multinomial --help. Here is the error:

/storage/home/hxw346$ songbird multinomial --help
Traceback (most recent call last):
File “/storage/home/hxw346/.conda/envs/songbird_env/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow.py”, line 58, in
from tensorflow.python.pywrap_tensorflow_internal import *
File “/storage/home/hxw346/.conda/envs/songbird_env/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py”, line 28, in
_pywrap_tensorflow_internal = swig_import_helper()
File “/storage/home/hxw346/.conda/envs/songbird_env/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py”, line 24, in swig_import_helper
_mod = imp.load_module(’_pywrap_tensorflow_internal’, fp, pathname, description)
File “/storage/home/hxw346/.conda/envs/songbird_env/lib/python3.6/imp.py”, line 243, in load_module
return load_dynamic(name, filename, file)
File “/storage/home/hxw346/.conda/envs/songbird_env/lib/python3.6/imp.py”, line 343, in load_dynamic
return _load(spec)
ImportError: /lib64/libc.so.6: version `GLIBC_2.17’ not found (required by /storage/home/hxw346/.conda/envs/songbird_env/lib/python3.6/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/storage/home/hxw346/.conda/envs/songbird_env/bin/songbird”, line 3, in
import tensorflow as tf
File “/storage/home/hxw346/.conda/envs/songbird_env/lib/python3.6/site-packages/tensorflow/init.py”, line 22, in
from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
File “/storage/home/hxw346/.conda/envs/songbird_env/lib/python3.6/site-packages/tensorflow/python/init.py”, line 49, in
from tensorflow.python import pywrap_tensorflow
File “/storage/home/hxw346/.conda/envs/songbird_env/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow.py”, line 74, in
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File “/storage/home/hxw346/.conda/envs/songbird_env/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow.py”, line 58, in
from tensorflow.python.pywrap_tensorflow_internal import *
File “/storage/home/hxw346/.conda/envs/songbird_env/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py”, line 28, in
_pywrap_tensorflow_internal = swig_import_helper()
File “/storage/home/hxw346/.conda/envs/songbird_env/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py”, line 24, in swig_import_helper
_mod = imp.load_module(’_pywrap_tensorflow_internal’, fp, pathname, description)
File “/storage/home/hxw346/.conda/envs/songbird_env/lib/python3.6/imp.py”, line 243, in load_module
return load_dynamic(name, filename, file)
File “/storage/home/hxw346/.conda/envs/songbird_env/lib/python3.6/imp.py”, line 343, in load_dynamic
return _load(spec)
ImportError: /lib64/libc.so.6: version `GLIBC_2.17’ not found (required by /storage/home/hxw346/.conda/envs/songbird_env/lib/python3.6/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so)

Failed to load the native TensorFlow runtime.

See https://www.tensorflow.org/install/install_sources#common_installation_problems

for some common reasons and solutions. Include the entire stack trace
above this error message when asking for help.

Like you said, I installed songbird in another env directory and do the ‘’‘source activate songbird’’’, also I am sure that songbird is already installed in the songbird_env directory.

Thank you and look forward to your help.

-Henry

1 Like

Hello Henry,

This is a software deployment question so I'm not sure how much help I can be here...

The error you are currently having is

ImportError: /lib64/libc.so.6: version `GLIBC_2.17’ not found (required by /storage/home/hxw346/.conda/envs/songbird_env/lib/python3.6/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so)

so I would google around for that. If you are running on a super computer, this is a question you could elevate to your HPC team and have them install this for you.

Then hopefully songbird will work! :bird:

Colin

If you can find

Hi Henry—

I’ve run into this sort of problem a few times on different systems. I’ve been able to resolve this by running

conda uninstall tensorflow
conda install -c anaconda tensorflow

This has fixed “GLIBC” issues when they’ve come up in the past.

3 Likes

@colinbrislawn Thanks for the suggestion. Yes, I'm using the supercomputer in my college, I think I will try it later if there is no other way to fix this problem.

Hi, @fedarko, thank you for your reply. When I uninstall tensorflow, songbird will also be unstalled shown in the first attached file "install.txt". After that, the songbird isn't installed when using the command below:

conda install -c anaconda tensorflow

So I install it again by using the following command.

conda install songbird -c conda-forge

In the end, it still shows the same error:

ImportError: /lib64/libc.so.6: version `GLIBC_2.17’ not found

P.S. before any install and uninstall, I will run "source activate songbird_env" first

Thank you.

install.txt (1.4 KB)

Hi Henry,

Conda uninstalling Songbird in that situation is to be expected. However, it is strange that you're still seeing that error.

P.S. before any install and uninstall, I will run “source activate songbird_env” first

I don't think this is the case, but just to check—does this mean you're continuously rerunning source activate songbird_env? You should only need to activate your environment once:

# Do things like this!
source activate songbird_env
[command 1]
[command 2]
[command 3]
...

instead of

# No need to do this
source activate songbird_env
[command 1]
source activate songbird_env
[command 2]
source activate songbird_env
[command 3]
...

In any case: could you please run the following command from within your songbird_env, and show me what the output is? You should be able to just copy-and-paste it in to your terminal.

conda list | grep -E "tensor|songbird"

My best guess for what is going wrong here is that the conda-forge version of Songbird is somehow messed up. Let's try installing Songbird through "pip" and see if that fixes things. Make sure your songbird_env is activated, then try running:

conda uninstall songbird
pip install songbird

Hopefully this fixes things. If not, let me know and we'll see if we can think of other ways to get around this problem :slight_smile:

Hi @fedarko, sorry for the misleading, I mean I will active songbird_env once before I do any command. I attached the result after I ran the "conda install -c anaconda tensorflow"

Here is the result after I ran "conda list | grep -E "tensor|songbird""

> /storage/home/hxw346$ conda list | grep -E "tensor|songbird"
> # packages in environment at /storage/home/hxw346/.conda/envs/songbird_env:
> tensorboard               1.10.0                   py36_0    conda-forge

Then, I ran:

conda uninstall songbird
pip install songbird

The result is shown in the second attached file.

Last, here is the result after I ran the "conda list | grep -E "tensor|songbird" again:

/storage/home/hxw346$ conda list | grep -E "tensor|songbird"
# packages in environment at /storage/home/hxw346/.conda/envs/songbird_env:
songbird                  0.9.0                     <pip>
tensorboard               1.10.0                   py36_0    conda-forge
tensorboard               1.14.0                    <pip>
tensorflow                1.14.0                    <pip>
tensorflow-estimator      1.14.0                    <pip>

Last, I use "songbird multinomial --help" to check whether the installation works or not and get the following error. The only difference is the requirement of GLIBC turn to be version 2.15 instead of 2.17.

ImportError: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by /storage/home/hxw346/.conda/envs/songbird_env/lib/python3.6/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so)

Failed to load the native TensorFlow runtime.

See Build and install error messages  |  TensorFlow

for some common reasons and solutions. Include the entire stack trace
above this error message when asking for help.

hxw-2019.7.o14270013.txt (5.3 MB)
hxw-2019.7.o14270361.txt (11.0 KB)

Thank you!!

1 Like

Hi @henry_wang, thanks for the detailed information!

It looks like Conda wasn’t able to install Tensorflow when you ran conda install -c anaconda tensorflow. In your first attached file (hxw-2019.7.o14270013.txt), I see a few lines that read

CondaError: OSError(122, 'Disk quota exceeded')
CondaError: OSError(122, 'Disk quota exceeded')
CondaError: OSError(122, 'Disk quota exceeded')

Also, from the output from conda list | grep -E "tensor|songbird", it seems like most of the Tensorflow stuff you have installed was not installed through conda, but was instead installed when you installed Songbird through pip (since many of these packages have the label <pip>).

So… I’m not 100% sure what’s going on here, but my best guess is that you are running out of space, and this is preventing conda install -c anaconda tensorflow from succeeding. Maybe you only have a certain amount of storage on your school’s supercomputer, and Conda is exceeding that when it tries to install some things?

If this is indeed your problem, I can’t help too much with solving it. You might be able to run something like conda clean -t (here’s a discussion on this command) to remove unused stuff from your Conda installation. That would hopefully free enough space so that conda install -c anaconda tensorflow would work properly.

Please see below for a list of commands to do that, using conda clean -t. I cannot guarantee that this will work, though—at this point I think the best solution is, as @colinbrislawn suggested, asking your supercomputer’s staff about how to get around this problem.

Basically, the problem you’re running into is just getting Tensorflow installed and working on this computer. Once you’ve got past that, getting Songbird running shouldn’t be too bad :slight_smile:

# This is a small list of commands that *might* help get this working

# 1. Uninstall songbird and tensorflow (the pip versions)
pip uninstall songbird
pip uninstall tensorflow
# 2. Remove cached tarballs in your conda: hopefully will free up space
# so that conda can properly install tensorflow
conda clean -t
# 3. Try to install tensorflow specifically from the "anaconda" channel
conda install -c anaconda tensorflow
# 4. CHECK THAT THIS WORKED: if this fails, tensorflow was not installed
# properly :( If it doesn't fail, though, then you should be good!
python3 -c "import tensorflow"
# 5. Once you've gotten tensorflow working, you can re-install songbird
pip install songbird

Good luck and hope all this is helpful,
Marcus

1 Like

@fedarko
Finally, it works. I think the overall problem is because of the disk exceeded.

Also, I found out that there is no issue in the command. So, for other people who need to install songbird, conda install actually works and the only thing is to change the tensorflow sources to anaconda.

conda install songbird -c conda-forge

Thank you so much.

2 Likes

Hi @henry_wang,

That’s fantastic news! I’m glad to hear this worked out for you :slight_smile:

Best,
Marcus

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.