Skip to content

RAxML-NG and Pythia in same conda environment causes unresolvable numpy dependency conflict #22

@ekiefl

Description

@ekiefl

System information

$ python --version
Python 3.10.19
$ uname -a
Darwin evans-Apple-MacBook-Pro 23.1.0 Darwin Kernel Version 23.1.0: Mon Oct  9 21:33:00 PDT 2023; root:xnu-10002.41.9~7/RELEASE_ARM64_T6031 arm64

Description

When installing RAxML-NG on the bioconda conda channel, numpy<2 is enforced:

$ conda install -c bioconda raxml-ng
Retrieving notices: done
Channels:
 - bioconda
 - defaults
 - conda-forge
Platform: osx-64
Collecting package metadata (repodata.json): done
Solving environment: / warning  libmamba Added empty dependency for problem type SOLVER_RULE_UPDATE
done

## Package Plan ##

  environment location: /Users/evan/miniconda3/envs/2025-phylogenetic-analysis-of-msa-pairformer

  added / updated specs:
    - raxml-ng


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    blas-2.137                 |         openblas          17 KB  conda-forge
    blas-devel-3.9.0           |37_hbf4f893_openblas          17 KB  conda-forge
    liblapacke-3.9.0           |37_h94b3770_openblas          17 KB  conda-forge
    numpy-1.26.4               |  py310hf6dca73_0          12 KB
    numpy-base-1.26.4          |  py310hd8f4981_0         6.7 MB
    openblas-0.3.30            |openmp_h30af337_4         5.4 MB  conda-forge
    raxml-ng-1.2.2             |       hb53313b_2         785 KB  bioconda
    ------------------------------------------------------------
                                           Total:        13.0 MB

The following NEW packages will be INSTALLED:

  blas               conda-forge/osx-64::blas-2.137-openblas
  blas-devel         conda-forge/osx-64::blas-devel-3.9.0-37_hbf4f893_openblas
  liblapacke         conda-forge/osx-64::liblapacke-3.9.0-37_h94b3770_openblas
  mpi                pkgs/main/osx-64::mpi-1.0-openmpi
  numpy-base         pkgs/main/osx-64::numpy-base-1.26.4-py310hd8f4981_0
  openblas           conda-forge/osx-64::openblas-0.3.30-openmp_h30af337_4
  openmpi            conda-forge/osx-64::openmpi-4.1.6-h7406208_101
  raxml-ng           bioconda/osx-64::raxml-ng-1.2.2-hb53313b_2
  zlib               conda-forge/osx-64::zlib-1.3.1-hd23fc13_2

The following packages will be REMOVED:

  pythiaphylopredictor-2.0.0-pypi_0

The following packages will be UPDATED:

  libopenblas                      0.3.30-openmp_h6006d49_2 --> 0.3.30-openmp_h6006d49_4

The following packages will be SUPERSEDED by a higher-priority channel:

  numpy                       pypi/pypi::numpy-2.2.6-pypi_0 --> pkgs/main/osx-64::numpy-1.26.4-py310hf6dca73_0


Proceed ([y]/n)? y

But pythia enforces numpy>2, which leads to an unresolvable dependency conflict.

$ conda install pythiaphylopredictor -c conda-forge -c nodefaults
Channels:
 - conda-forge
 - nodefaults
 - defaults
 - bioconda
Platform: osx-64
Collecting package metadata (repodata.json): done
Solving environment: / warning  libmamba Added empty dependency for problem type SOLVER_RULE_UPDATE
failed

LibMambaUnsatisfiableError: Encountered problems while solving:
  - nothing provides _python_rc needed by python-3.14.0rc2-h780d05a_0_cp314t

Could not solve for environment specs
The following packages are incompatible
├─ numpy 1.26**  is installable with the potential options
│  ├─ numpy [1.26.0|1.26.2|...|2.3.2] would require
│  │  └─ python >=3.11,<3.12.0a0 , which can be installed;
│  ├─ numpy [1.26.0|1.26.2|...|2.3.2] would require
│  │  └─ python [>=3.12,<3.13.0a0 |>=3.12.0rc3,<3.13.0a0 ], which can be installed;
│  ├─ numpy [1.26.0|1.26.2|...|2.0.2] would require
│  │  └─ python >=3.9,<3.10.0a0 , which can be installed;
│  └─ numpy [1.26.0|1.26.2|1.26.3|1.26.4], which can be installed;
├─ pin-1 is not installable because it requires
│  └─ python 3.10.* , which conflicts with any installable versions previously reported;
└─ pythiaphylopredictor is installable and it requires
   └─ numpy >=2.0  with the potential options
      ├─ numpy [2.0.0|2.0.1|...|2.4.1] conflicts with any installable versions previously reported;
      ├─ numpy [1.26.0|1.26.2|...|2.3.2], which can be installed (as previously explained);
      ├─ numpy [1.26.0|1.26.2|...|2.3.2], which can be installed (as previously explained);
      ├─ numpy [1.26.0|1.26.2|...|2.0.2], which can be installed (as previously explained);
      ├─ numpy [2.1.0|2.1.1|...|2.3.2] would require
      │  └─ python [>=3.13,<3.14.0a0 |>=3.13.0rc1,<3.14.0a0 |>=3.13.0rc3,<3.14.0a0 ], which can be installed;
      └─ numpy 2.3.2 would require
         └─ python >=3.14.0rc2,<3.15.0a0  with the potential options
            ├─ python [3.14.0|3.14.1|3.14.2], which can be installed;
            └─ python [3.14.0rc2|3.14.0rc3] would require
               └─ _python_rc, which does not exist (perhaps a missing channel).

The problem

Pythia places a lower bound pin on numpy:

dependencies = [
    "pandas",
    "biopython",
    "lightgbm>=4.4",
    "numpy>=2.0",
    "shap>=0.41",
    "matplotlib",
    "loguru"
]

Is this really a required pin? It's at odds with its own dependency (raxml-ng), which requires numpy<2. I would recommend releasing or at least lowering this pin to include 1.26.4.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions