alibi-detect icon indicating copy to clipboard operation
alibi-detect copied to clipboard

conda / mamba installation not working due to wrapt pinning

Open YYYasin19 opened this issue 2 years ago • 7 comments

Trying to install alibi-detect with the following command

mamba install -c conda-forge alibi-detect

as stated on Getting Started causes the following error message

Encountered problems while solving:
  - package alibi-detect-0.8.1-pyhd8ed1ab_0 requires wrapt >=1.12.1,<1.13.0, but none of the providers can be installed

Unfortunately, wrapt seems not to be available currently on conda-forge for alibi-detects pinning.

Is there a specific reason why the newest wrapt version might not work?

YYYasin19 avatar Jul 15 '22 12:07 YYYasin19

wrapt isn't actually a direct dependency of alibi-detect so we would need to find out which third party dependency has it pinned to versions that are not available on conda.

First things first, did you run the command in a clean conda environment? I cannot recreate the issue running the installation in a clean environment with Python 3.9, the wrapt version that I end up with is 1.12.1 which is respected by the constraint showed in your message (the version is available on conda-forge in the link you provided). Which version of Python are you running?

Seocnd, running conda-tree I can see that the condition wrapt >=1.12.1,<1.13.0 comes from colorama which is a dependency of tqdm (although they say it's only required for Windows, but it got pulled in on my Linux machine automatically). None of this should matter too much though.

Third, I see your command pulls in version 0.8.1 of alibi-detect but the latest stable version is 0.9.0 which is what I'm getting by default. This could be because you're running an older Python version?

jklaise avatar Jul 15 '22 12:07 jklaise

Hey @jklaise thanks for the fast and insightful response!

sorry, if I may have misunderstood some things.

I have just created a new conda environment with

conda create --name alibi-detect python=3.10

and then ran

mamba install -c conda-forge alibi-detect=0.9.0

which again resulted in the following error

Encountered problems while solving:
  - package alibi-detect-0.9.0-pyhd8ed1ab_0 requires wrapt >=1.12.1,<1.13.0, but none of the providers can be installed

Since I am somewhat new to conda and conda-recipes, I may have misinterpreted the requirements in the feedstock. Are these requirements somehow ignored?

Other ideas/solutions are of course highly appreciated!

YYYasin19 avatar Jul 15 '22 13:07 YYYasin19

Ah I see, those wrapt and absl-py are not requirements in the setup.py of the repo but they've been included in the conda recipe to pass some dependency consistency checks.

That being said, Python 3.10 support has not yet been released which might result in dependency errors like these. Can you try with Python 3.9?

I'll leave a note that once we release the next version with Python 3.10 support we may need to update the conda recipe @ascillitoe.

jklaise avatar Jul 15 '22 13:07 jklaise

I see. Do you see any other solutions in the meantime than to just use --no-deps with conda? (pip is currently no option). (I can't test Python 3.9 right now, but will report back once I can)

YYYasin19 avatar Jul 15 '22 17:07 YYYasin19

I'm afraid I can't think of other solutions right now (other than installing from master but I believe you have to use pip for this), does the --no-deps flag lead to a functioning installation?

jklaise avatar Jul 18 '22 14:07 jklaise

I couldn't make it work with --no-deps (though I can't exclude the error coming from conda / mamba itself) but solved it by building a new conda package without using the wrapt dependency. This was on 3.10, though, on 3.9 everything seems to be working fine so far.

YYYasin19 avatar Jul 20 '22 21:07 YYYasin19

I have now removed wrapt and absl-py from our v0.10.0 conda recipe. However, installation on Python 3.10 is still not possible, since we require transformers, and transformers requires tokenizers, the recipe for which requires python >=3.9,<3.10.0a0.

I shall leave this issue open so that we can reassess the situation in the near future.

ascillitoe avatar Jul 29 '22 12:07 ascillitoe