Skip to content

Bizarre mamba installation error for a python 3.7.16 environment #70

@fedarko

Description

@fedarko

Description of the problem

Try running the following:

mamba create -n very-sus "python = 3.7"

On my machine this creates a small environment with, as of writing, Python 3.7.16. So far so good.

Now let's try to install strainFlye into this environment:

conda activate very-sus
mamba install -c bioconda strainflye

This gives me a bizarre error:

...
Looking for: ['strainflye']

Encountered problems while solving.
Problem: nothing provides numpy 1.10* needed by scikit-bio-0.2.3-np110py27_0

This is confusing, because the very-sus environment doesn't contain numpy or scikit-bio. (Running conda list | grep numpy doesn't output anything; same for conda list | grep scikit or conda list | grep skbio.) So why does mamba assume we have to use such an ancient version of scikit-bio (and thus an ancient version of numpy)?

We can directly install a relatively recent version of scikit-bio without problems:

mamba install -c conda-forge "scikit-bio>=0.5.6"

On my machine this installs numpy 1.21.6 and scikit-bio 0.5.7. Again, that seems normal.

So you'd think that installing strainFlye should work now, right? But running mamba install -c bioconda strainflye at this point gives the following insane error message:

...
Looking for: ['strainflye']

Encountered problems while solving.
Problem: package strainflye-0.2.0-pyhca03a8a_0 requires python >=3.6,<3.8, but none of the providers can be installed

Now that's interesting, because we are literally using Python 3.7. To prove this, conda list | grep python gives:

brotli-python             1.0.9            py37hd23a5d3_7    conda-forge
ipython                   7.33.0           py37h89c1867_0    conda-forge
msgpack-python            1.0.3            py37h7cecad7_1    conda-forge
python                    3.7.16               h7a1cb2a_0  
python-dateutil           2.8.2              pyhd8ed1ab_0    conda-forge
python_abi                3.7                     2_cp37m    conda-forge

Weird, right?

I think this is a symptom of a problem with mamba / conda -- this sort of obviously incorrect error message has been documented in a few other places (example 1, example 2, example 3).

Workaround solution

It seems like creating a conda environment with strainFlye in it (rather than installing strainFlye into an existing conda environment) works fine, though:

mamba create -n less-sus -c bioconda strainflye

This creates a working environment with strainFlye (and Python 3.7.6, and numpy 1.21.5, and scikit-bio 0.5.6) installed. Soooooo if this problem comes up again for users, they should be able to work around it by just creating a new environment. Eeesh.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinginstallationEverybody's favorite part of bioinformatics

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions