Anaconda 4.7.5 - Warning about conda-build <3.18.3 and issues with python packages

krishnab picture krishnab · Jun 26, 2019 · Viewed 21.9k times · Source

I run the Anaconda python distribution on Ubuntu Linux 18.04 LTS x64 and just updated the distribution with the usual conda update --all. After that, the command line message suggested updating the conda base defaults. Now for some reason, I am having a couple of issues. First, I am unable to launch jupyter lab, even after trying to reinstall conda install jupyter. And second I am getting this new warning message.

    WARNING conda.base.context:use_only_tar_bz2(632):
 Conda is constrained to only using the old .tar.bz2
 file format because you have conda-build installed,
 and it is <3.18.3.  Update or remove conda-build to
 get smaller downloads and faster extractions.

So I looked and found this blog post from today about making Anaconda faster. But the post seems to be more information and does not seem to recommend upgrading right away.

Here is the output from conda info.

     active environment : XXX
    active env location : XXX
            shell level : 2
       user config file : ../.condarc
 populated config files : ../.condarc
          conda version : 4.7.5
    conda-build version : 3.17.8
         python version : 3.6.6.final.0
       virtual packages : __cuda=10.1
       base environment : ../anaconda3  (writable)
           channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : ../.conda/pkgs
       envs directories : ../.conda/envs
               platform : linux-64
             user-agent : conda/4.7.5 requests/2.22.0 CPython/3.6.6 Linux/4.15.0-50-generic ubuntu/18.04.2 glibc/2.27
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False

Has anyone else run into this issue? Should I delete my old anaconda distribution and download and install the new version of 4.7, or is there a simpler fix?

UPDATE

So I did post this issue to the conda repo on Github. The current issue open against this problem is listed below. According to msarahan here is the basis of the problem and just a temporary workaround

https://github.com/conda/conda/issues/8842

  1. anaconda is a meta-package. Each version consists of a set of versions that have all gone through QA together as a set. If you change any version of any package in that collection, you no longer have that metapackage, because you have strayed from that known set. There is a special version of that metapackage, custom, that is meant to handle this relaxation of constraints. The "custom" version depends only on a particular version of python - it removes the constraints on all other packages.

  2. conda 4.7 builds up its candidates for addition differently from earlier conda versions. It starts with specs from the history, and tries to constrain things where it can, to speed up the solution. When conda finds the anaconda metapackage with the "custom" version, it keeps it, but all of those other dependencies are now orphaned. This is why conda is removing them - they have no spec in the history that tells conda to keep them.

You can restore these by running conda install --only-deps anaconda. From then on, all of those packages are considered part of your explicit history, and you won't have further problems like this.

Answer

James Owers picture James Owers · Jun 27, 2019
conda activate base  # or just conda deactivate
conda update conda-build

(Or simply conda update -n base -c defaults conda-build)

If this doesn't fix, try rolling back to before your update to 4.7.5, as @LeninGF suggests, then removing conda metadata, cleaning up conda, then try the update again i.e.

conda list --revisions  # find number, x, before the update
conda install --revision x
rm -rf ~/.conda
conda clean --all
conda update conda