Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Updating conda leads to downgrade and superseded packages [duplicate]

Tags:

conda

anaconda

For m, on OS X, conda update --all often downgrades libraries - along with updating many.

Is this usual? Or something possibly in my setup?

Earlier this year, it was pillow for many months.

Surprisingly, today it was several of the HDF5 related libraries, numba and llvmlite.

So conda update numba brings numba back to the most recent version, and so on with the other 8 libraries, but why doesn't conda update --all do this anyway?

like image 664
Christopher Short Avatar asked Jul 19 '15 06:07

Christopher Short


People also ask

What does conda update conda do?

Updates conda packages to the latest compatible version. This command accepts a list of package names and updates them to the latest versions that are compatible with all other packages in the environment. Conda attempts to install the newest versions of the requested packages.

Is updating conda safe?

tldr: It is not safe to do so unless you know for certain none of the other packages you have installed do not depend on those dependencies, or any other programs that use those packages will error out. thanks for the tip.

How do you update conda environment packages?

Update Conda Environments Using a YAML File Once you have created a conda environment, you can update it anytime by first activating the environment and then running the conda env update command. The example below updates the earth-analytics-python environment using the environment. yml file.

How long does conda update take?

(Q) The feedstock for a package from conda-forge is updated, how long should it take to update on Anaconda Cloud? It depends on the queue, but a good rule of thumb is to wait at least 30 mins - 2 hours. If you don't see it after 24 hrs, please raise an issue.


2 Answers

It's a compatibility issue. Anaconda is a stable set of packages. When you update Anaconda, you update to this stable list.

However, when you update individual packages, they might cause incompatibility issues with the rest of the Anaconda distribution so they aren't considered stable. That's why when you use conda update --all, it gets you to the latest stable Anaconda distribution, which might or might not have the version of the individual package you wanted.

See here: https://github.com/ContinuumIO/anaconda-issues/issues/39

Edit: This behavior has changed. It now tries to increase the version of all packages (except Python between major/minor version) such that no packages will be incompatible with each other.

See here: http://continuum.io/blog/advanced-conda-part-1#conda-update-all

like image 67
Ringil Avatar answered Oct 19 '22 17:10

Ringil


Some libraries depend on specific lower versions for compatibility purposes. conda update --all will try to update packages as much as possible, but it always maintains compatibility with the version restrictions in each package's metadata. Note that the anaconda package does not come into play here (assuming you have a recent version of conda), because conda update --all ignores it.

Unfortunately, it's not always easy to see what depends on what, but there are some tricks. One way is to pin each package to a version you want and running conda update --all. It should generate an unsatisfiability hint that will give you an idea of what is causing the problem. Another way is to search through the package metadata.

For numba, I can suggest that the problem is likely related to numbapro. There are a few packages that depend on hdf5. You can use conda info <package> to see the dependencies of a package (like conda info h5py).

like image 11
asmeurer Avatar answered Oct 19 '22 15:10

asmeurer