54

I am trying to install fuzzywuzzy onto my Anaconda distribution in 64 bit Linux. When I do this, it tries to change my conda, and conda-env to conda-forge channels. As follows:

I search anaconda for fuzzy wuzzy by writing:

anaconda search -t fuzzywuzzy

This showed that the most up to date version available for anaconda on 64 bit Linux is 0.13 provided on the channel conda-forge.

To install, within the command line, I type:

conda install -c conda-forge fuzzywuzzy=0.13.0

I get the following output:

The following packages will be downloaded:

package                    |            build
---------------------------|-----------------
conda-env-2.6.0            |                0         1017 B  conda-forge
python-levenshtein-0.12.0  |           py27_0         138 KB  conda-forge
conda-4.2.13               |           py27_0         375 KB  conda-forge
fuzzywuzzy-0.11.0          |           py27_0          15 KB  conda-forge
------------------------------------------------------------
                                   Total:         528 KB


The following new packages will be INSTALLED:

    fuzzywuzzy:            0.11.0-py27_0 conda-forge
    python-levenshtein:    0.12.0-py27_0 conda-forge

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

    conda:        4.2.13-py27_0      --> 4.2.13-py27_0 conda-forge 
    conda-env:    2.6.0-0            --> 2.6.0-0       conda-forge 

Proceed ([y]/n)?

I do not understand what this is telling me.

What does this mean? Am I right in thinking that this is changing my default package manager channels? Can this be reversed if I go ahead and install it? Is there any way to complete the installation without changing the default channel? Or is favouring the superceding channels something that I should be doing?

I don't want to change my distribution just for one module, or cause further headaches.

This question: https://github.com/conda/conda/issues/2898 sounds like its telling me that I should just let it happen. What do?

(I am using anaconda version: 4.2.13 and Python 2.7.12)

Chuck
  • 3,664
  • 7
  • 42
  • 76
  • 6
    It tells you: You have conda version 4.2.13 from the defaults channel installed. The conda-forge channel provides the same version. Since you gave the conda-forge channel a higher priority, conda will switch to the package from conda-forge, even though it's the same version and not an update. – cel Jan 04 '17 at 10:33
  • 2
    Thank you for your comment. You said: "Since you gave the conda-forge channel a higher priority" - Where did I do this? When I tried to install from conda-forge? – Chuck Jan 04 '17 at 10:36
  • @cel Your comment would be a great answer! – Emil Vikström Jan 04 '17 at 10:50
  • 4
    @EmilVikström Is it advisable to transfer the default channels to conda-forge? Does it offer something that the default conda channel doesn't? Why does it automatically try and change the channels if I just want to install a single package? – Chuck Jan 04 '17 at 11:03
  • @Chuck I can't reproduce that behavior today. `fuzzywuzzy=0.13.0` doesn't seem to exist on `conda-forge`. Can you update your question with the required steps to reproduce the problem, preferably including a more recent version of `conda` in order to increase the relevance of the question. – a_guest Mar 16 '20 at 13:10
  • @a_guest I didn't realise it is longer there. I need to update the question properly to re-get an example. I've actually asked for bounty to be removed, while I do this, doesn't really seem fair otherwise :/ – Chuck Mar 16 '20 at 13:36

1 Answers1

33

When you ask conda to install fuzzywuzzy from conda-forge, fuzzywuzzy indicates that it needs conda and conda-env. Conda detects that you already have these installed, but it also knows that these were installed from the default channel and not conda-forge.

Now, as a user you might expect that 4.2.13-py27_0 in the default channel and in the conda-forge channel to be exactly the same (and they should) but conda can not guarantee that this is the case. The developers could very well have uploaded different packages to the default and conda-forge channels.

This would cause some really shady bugs, and in order to avoid those conda prefers to install the dependencies from the same channel as the new package. This is what the message indicates, a package getting replaced with the same package, but from a different channel which you gave higher priority by using -c conda-forge.

Jonas Adler
  • 10,365
  • 5
  • 46
  • 73