ConesaLab/SQANTI3

[BUG] pip install ultra-bioinformatics => Could not build wheels for edlib

nick-youngblut opened this issue · 7 comments

Is there an existing issue for this?

  • I have searched the existing issues

Have you loaded the SQANTI3.env conda environment?

  • I have loaded the SQANTI3.env conda environment

Problem description

Whether pip install ultra-bioinformatics is run independently or within conda env create -f SQANTI3.conda_env.yml, the error is:

Collecting ultra-bioinformatics
  Using cached ultra_bioinformatics-0.1-py3-none-any.whl
Collecting parasail (from ultra-bioinformatics)
  Using cached parasail-1.3.4-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (21 kB)
Requirement already satisfied: pysam in /home/nickyoungblut/miniforge3/envs/SQANTI3.env/lib/python3.12/site-packages (from ultra-bioinformatics) (0.22.1)
Collecting dill (from ultra-bioinformatics)
  Using cached dill-0.3.8-py3-none-any.whl.metadata (10 kB)
Collecting intervaltree (from ultra-bioinformatics)
  Using cached intervaltree-3.1.0-py2.py3-none-any.whl
Collecting gffutils (from ultra-bioinformatics)
  Using cached gffutils-0.13-py3-none-any.whl.metadata (1.5 kB)
Collecting edlib (from ultra-bioinformatics)
  Using cached edlib-1.3.9.tar.gz (91 kB)
  Preparing metadata (setup.py) ... done
Collecting pyfaidx>=0.5.5.2 (from gffutils->ultra-bioinformatics)
  Using cached pyfaidx-0.8.1.1-py3-none-any.whl.metadata (25 kB)
Collecting argh>=0.26.2 (from gffutils->ultra-bioinformatics)
  Using cached argh-0.31.2-py3-none-any.whl.metadata (7.3 kB)
Requirement already satisfied: argcomplete>=1.9.4 in /home/nickyoungblut/miniforge3/envs/SQANTI3.env/lib/python3.12/site-packages (from gffutils->ultra-bioinformatics) (3.4.0)
Collecting simplejson (from gffutils->ultra-bioinformatics)
  Using cached simplejson-3.19.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.1 kB)
Collecting sortedcontainers<3.0,>=2.0 (from intervaltree->ultra-bioinformatics)
  Using cached sortedcontainers-2.4.0-py2.py3-none-any.whl.metadata (10 kB)
Requirement already satisfied: numpy in /home/nickyoungblut/miniforge3/envs/SQANTI3.env/lib/python3.12/site-packages (from parasail->ultra-bioinformatics) (1.26.4)
Requirement already satisfied: setuptools in /home/nickyoungblut/miniforge3/envs/SQANTI3.env/lib/python3.12/site-packages (from pyfaidx>=0.5.5.2->gffutils->ultra-bioinformatics) (70.1.1)
Collecting importlib-metadata (from pyfaidx>=0.5.5.2->gffutils->ultra-bioinformatics)
  Using cached importlib_metadata-7.2.1-py3-none-any.whl.metadata (4.6 kB)
Collecting zipp>=0.5 (from importlib-metadata->pyfaidx>=0.5.5.2->gffutils->ultra-bioinformatics)
  Using cached zipp-3.19.2-py3-none-any.whl.metadata (3.6 kB)
Using cached dill-0.3.8-py3-none-any.whl (116 kB)
Using cached gffutils-0.13-py3-none-any.whl (1.6 MB)
Using cached parasail-1.3.4-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.6 MB)
Using cached argh-0.31.2-py3-none-any.whl (44 kB)
Using cached pyfaidx-0.8.1.1-py3-none-any.whl (28 kB)
Using cached sortedcontainers-2.4.0-py2.py3-none-any.whl (29 kB)
Using cached simplejson-3.19.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (152 kB)
Using cached importlib_metadata-7.2.1-py3-none-any.whl (25 kB)
Using cached zipp-3.19.2-py3-none-any.whl (9.0 kB)
Building wheels for collected packages: edlib
  Building wheel for edlib (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [14 lines of output]
      running bdist_wheel
      running build
      running build_ext
      building 'edlib' extension
      creating build
      creating build/temp.linux-x86_64-cpython-312
      creating build/temp.linux-x86_64-cpython-312/edlib
      creating build/temp.linux-x86_64-cpython-312/edlib/src
      gcc -pthread -B /home/nickyoungblut/miniforge3/envs/SQANTI3.env/compiler_compat -fno-strict-overflow -DNDEBUG -O2 -Wall -fPIC -O2 -isystem /home/nickyoungblut/miniforge3/envs/SQANTI3.env/include -fPIC -O2 -isystem /home/nickyoungblut/miniforge3/envs/SQANTI3.env/include -fPIC -Iedlib/include -I/home/nickyoungblut/miniforge3/envs/SQANTI3.env/include/python3.12 -c edlib.bycython.cpp -o build/temp.linux-x86_64-cpython-312/edlib.bycython.o -O3 -std=c++11
      edlib.bycython.cpp:198:12: fatal error: longintrepr.h: No such file or directory
        198 |   #include "longintrepr.h"
            |            ^~~~~~~~~~~~~~~
      compilation terminated.
      error: command '/usr/bin/gcc' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for edlib
  Running setup.py clean for edlib
Failed to build edlib
ERROR: Could not build wheels for edlib, which is required to install pyproject.toml-based projects

conda install compilers did not help.

I've created an issue in the edlib repo: Martinsos/edlib#222

Code sample

No response

Error

No response

Anything else?

For now, I'm just going to skip edlib: pip install dill intervaltree gffutils parasail

You might want to consider setting python in SQANTI3.conda_env.yml to python<=3.11, given Martinsos/edlib#221

Setting python=3.11 in SQANTI3.conda_env.yml avoided the edlib issue.

Note: at least for mamba, the defaults channel should NOT be used (see here)

At least for my install, running sqanti3_qc.py throws the error:

ModuleNotFoundError: No module named 'pandas'

...since pandas is not included in SQANTI3.conda_env.yml, and thus not in my conda env.

So, another dependency issue.

Hi @nick-youngblut,

Yes, the issue with the latest Python version was mentioned in #310. Everything is working well with 3.11, so I will update the dependencies in the yml.

I think you may have had some problems with your installation because pandas is included in the yml.

Alejandro.

I think you may have had some problems with your installation because pandas is included in the yml.

SQANTI3.conda_env.yml in https://github.com/ConesaLab/SQANTI3/archive/refs/tags/v5.2.1.tar.gz does not include pandas:

name: SQANTI3.env
channels:
  - conda-forge
  - bioconda
  - anaconda
  - r
  - defaults
dependencies:
  - bcbio-gff
  - bedtools
  - biopython<=1.81
  - bioconductor-noiseq
  - bioconductor-busparse
  - bx-python
  - cython
  - desalt
  - gffread
  - gmap
  - kallisto=0.48.0
  - minimap2
  - numpy
  - openssl
  - pandoc
  - perl
  - pip
  - psutil
  - pybedtools
  - pysam
  - python>=3.7.6
  - r>=4.3.0
  - r-biocmanager
  - r-caret
  - r-dplyr
  - r-dt
  - r-devtools
  - r-e1071
  - r-forcats
  - r-ggplot2>=3.4.0
  - r-ggplotify
  - r-gridbase
  - r-gridextra
  - r-htmltools
  - r-jsonlite
  - r-optparse
  - r-plotly
  - r-plyr
  - r-pROC
  - r-purrr
  - r-rmarkdown
  - r-reshape
  - r-readr
  - r-randomForest
  - r-scales
  - r-stringi
  - r-stringr
  - r-tibble
  - r-tidyr
  - samtools
  - scipy<=1.11.4
  - seqtk
  - star
  - slamem
  - pip:
    - ultra-bioinformatics

I see that you just recently added pandas. Apparently, that update is not yet in the tarball.

Yes, you are right. It has been a while since the last release.

I had the same issue and I managed to circumvent that by replacing the contents of the envrionement.yaml in the tarball with those in the git repo.

Please update the tarball, this error still occurs in todays download (July 30 2024). I downloaded using git clone to get the correct .yml file