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.
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:
This gives me a bizarre error:
This is confusing, because the
very-susenvironment doesn't contain numpy or scikit-bio. (Runningconda list | grep numpydoesn't output anything; same forconda list | grep scikitorconda 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 strainflyeat this point gives the following insane error message:Now that's interesting, because we are literally using Python 3.7. To prove this,
conda list | grep pythongives: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:
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.