etal / cnvkit

Copy number variant detection from targeted DNA sequencing
http://cnvkit.readthedocs.org
Other
501 stars 163 forks source link

Installation from VCS via pip fails during pomegranate installation #832

Closed kkchau closed 9 months ago

kkchau commented 11 months ago

Recent Cython 3.0.0 release renders pomegranate==0.14.8 uninstallable on Ubuntu 20.04:

# Installed from local checkout
$ pip install -e $PWD/cnvkit
Obtaining file:///home/kevin.chau/projects/cnvkit
  Installing build dependencies ... done
  Checking if build backend supports build_editable ... done
  Getting requirements to build editable ... done
  Installing backend dependencies ... done
  Preparing editable metadata (pyproject.toml) ... done
Collecting biopython>=1.79
  Downloading biopython-1.81-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB)
Collecting reportlab>=3.6.8
  Downloading reportlab-4.0.4-py3-none-any.whl (1.9 MB)
Collecting scipy>=1.7.3
  Using cached scipy-1.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (34.5 MB)
Collecting matplotlib>=3.5.1
  Downloading matplotlib-3.7.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (9.2 MB)
Collecting pomegranate==0.14.8
  Using cached pomegranate-0.14.8.tar.gz (4.3 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.

...[TRUNCATED]

Installing from PyPI works, but pulls pomegranate==1.0.0 since the version pinned in cnvkit==0.9.10 is pomegranate>=0.14.8. This installation subsequently does NOT work since pomegranate==1.0.0 is a breaking change and there have been significant API changes (see https://github.com/etal/cnvkit/issues/815).

The Cython issue in pomegranate is currently being tracked in https://github.com/jmschrei/pomegranate/issues/1052. Looks like pomegranate has already been pinned per https://github.com/etal/cnvkit/pull/789#discussion_r1193073820; not sure if there's much else that can be done except a) rewriting hmm to utilize "torchegranate" or b) wait for pomegranate 0.14.8 to be patched/updated to 0.14.9.