System error: bad call flags

Hi,

I have run Humann2 on my datasets and would like to further create a report on the obtained results with BioBakery workflows, however, apparently, something is going wrong during the installation…

Both BioBakery commands (biobakery_workflows_databases and biobakery_workflows) brings the same error:

    $ biobakery_workflows_databases --install wmgx
    Traceback (most recent call last):
      File "/home/dita.gudra/.local/bin/biobakery_workflows_databases", line 5, in <module>
        from biobakery_workflows.biobakery_workflows_databases import main
      File "/home/dita.gudra/.local/lib/python3.8/site-packages/biobakery_workflows/biobakery_workflows_databases.py", line 30, in <module>
        from . import utilities
      File "/home/dita.gudra/.local/lib/python3.8/site-packages/biobakery_workflows/utilities.py", line 33, in <module>
        from anadama2.tracked import TrackedDirectory
      File "/home/dita.gudra/.local/lib/python3.8/site-packages/anadama2/__init__.py", line 83, in <module>
        from .workflow import Workflow
      File "/home/dita.gudra/.local/lib/python3.8/site-packages/anadama2/workflow.py", line 24, in <module>
        from . import backends
      File "/home/dita.gudra/.local/lib/python3.8/site-packages/anadama2/backends.py", line 7, in <module>
        import leveldb
    SystemError: GetStats() method: bad call flags

As I understand, the problem is coming from python and might be related to the 3.7+ versions… for the note- I have tried the installation with pip and conda (along with different python versions).

Is there any fix?

Thanks in advance,
Dita.

Hi Dita, Thank you for the detailed post. The issue is from the leveldb dependency (the latest version) running in python 3.8. If you roll back your leveldb version or your python version it should resolve the issue. Either pip or conda should work for the install but I would use one or the other as trying to use both will make debugging a bit harder. For your reference we are running and testing in python 3.7.[7|8] with leveldb v0.193.

Thank you,
Lauren

Hi,

So I gave extra try with several downgraded python versions, but then was the other side of the story - none of them were suitable for installing biobakery workflows within Conda environment. When I downgraded to 2.7.x, then I got an error that I need to get python version ‘>=3.7,<3.8.0a0|>=3.8,<3.9.0a0’, when I upgraded to 3.8., I got an error, that I need to get python version ‘>=2.7,<2.8.0a0’.
Tested python versions: 3.7.7, 2.7., 3.8., 2.7.2., 2.7.14. I additionally tested all available biobakery versions on each of the tested python version, unfortunately, without any success. Maybe this is related with the conda itself, as this time I didn’t try to use pip.

Are there any news on your test with python 3.7.?

All the best,
Dita.

Hi Dita, Thank you for the detailed notes and sorry you are still having issues with leveldb. Have you tried rolling back to an older version of leveldb? We are able to run okay in python v3.7.7, v3.7.8, and v3.6.10 with leveldb v0.193.

Thank you,
Lauren

Hi Lauren,
I am also facing the same issue as Dita, the issue what I think is kneaddata requires the python3.8 version and biobakery_workflows requires 3.7 version, and I can’t install 2 versions of python in the same environment.
command:
$ conda create --name biobakery_env python=3.7.8 leveldb=0.193 biobakery_workflows

output:
Solving environment: -
Found conflicts! Looking for incompatible packages.
This can take several minutes. Press CTRL-C to abort.
failed

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versions
Package python conflicts for:
biobakery_workflows -> python[version=’>=2.7,<2.8.0a0|>=3.7,<3.8.0a0’]
python=3.7.8
biobakery_workflows -> kneaddata -> python[version=’>=3.8,<3.9.0a0’]

Package leveldb conflicts for:
biobakery_workflows -> anadama2 -> leveldb==0.193
leveldb=0.193

Thank you,
Pratik

Hi Pratik,

When I re-installed the whole biobakery-workflows with leveldb v0.193 and python v3.7.7 it worked. But… started to conflict with my humann2 installation :smiley:
I also didn’t use conda environment as it seemed not to work properly for the installation. I just installed with the root access.

All the best,
Dita.

Hi Dita,
I installed biobakery_workflows and kneaddata using pip in conda enviroment. Now the different issue is showing when I tried to install the bibakery_workflows_databases

FileNotFoundError: [Errno 2] No such file or directory: ‘download_eggnog_data.py’: ‘download_eggnog_data.py’

Thank you,
Pratik