geoviews icon indicating copy to clipboard operation
geoviews copied to clipboard

Conda Install Fails

Open jjoonathan opened this issue 4 years ago • 47 comments

conda install -c pyviz geoviews currently fails to Solve Environment inside a clean anaconda container launched with sudo docker run -it continuumio/anaconda3.

I've tried the pyviz channel, the default channel, and the conda-forge channel with the same results.

Conda suggests that the problem has to do with conflicts and that it is looking for incompatibilities, but it has been running since yesterday and only reports 90% progress. I'll update this post if it completes.

Found conflicts! Looking for incompatible packages. This can take several minutes. Press CTRL-C to abort. Examining conflict for ...

jjoonathan avatar Mar 24 '20 16:03 jjoonathan

Here is conda info inside the container:

sudo doc(base) jon@jon-Precision-7720:~/hyperspectral$ sudo docker run -it continaconda3 
(base) root@68c9563607c9:/# conda info

     active environment : base
    active env location : /opt/conda
            shell level : 1
       user config file : /root/.condarc
 populated config files : 
          conda version : 4.8.2
    conda-build version : 3.18.11
         python version : 3.7.6.final.0
       virtual packages : __glibc=2.28
       base environment : /opt/conda  (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 : /opt/conda/pkgs
                          /root/.conda/pkgs
       envs directories : /opt/conda/envs
                          /root/.conda/envs
               platform : linux-64
             user-agent : conda/4.8.2 requests/2.22.0 CPython/3.7.6 Linux/5.3.0-42-generic debian/10 glibc/2.28
                UID:GID : 0:0
             netrc file : None
           offline mode : False

jjoonathan avatar Mar 24 '20 16:03 jjoonathan

conda install -c pyviz geoviews-core completes successfully. It's just the full geoviews that conda has issues with. I wish it didn't take so long (~an hour) to fail, so that I could iterate quicker, but that's how conda is.

Update: conda's dependency analysis finally finished after 18 hours! Unfortunately it does not look terribly helpful at first glance. Hopefully it's more helpful to one of you :) conda_conflict_report.txt

jjoonathan avatar Mar 24 '20 16:03 jjoonathan

Ok, one more possibility eliminated. I don't think it's just the continuumio/anaconda3 docker image.

I manually started with sudo docker run -it ubuntu:latest, installed anaconda apt update; apt install curl; curl -O https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh; bash ./Anaconda3-2020.02-Linux-x86_64.sh, and ran conda install -c pyviz geoviews . It failed to Solve Environment.

jjoonathan avatar Mar 24 '20 19:03 jjoonathan

I've started manually installing combinations of geoviews dependencies. Unfortunately, whether or not they Solve Environment seems to be order-dependent. In each of these cases, I start with a fresh container sudo docker run -it continuumio/anaconda3:

I can successfully install all of the following (copied from history, might contain a typo):

conda install -yc pyviz geoviews-core
conda install -yc pyviz bokeh
conda install -yc pyviz datashader
conda install -yc pyviz xarray
conda install -yc pyviz holoviews
conda install -yc pyviz jupyter
conda install -yc pyviz matplotlib
conda install -yc pyviz numpy pandas
conda install -yc pyviz param
conda install -yc pyviz netcdf4
conda install -yc pyviz python
conda install -yc pyviz scipy
conda install -yc pyviz cartopy
conda install -yc pyviz pyct
conda install -yc pyviz shapely

If I subsequently try either of the following, I get a failed Solving Environment:

conda install -c pyviz geopandas
conda install -c pyviz gdal

If I try to install the "working" set of packages all at once, I get a failed Solving Environment: conda install -c pyviz bokeh cartopy datashader geoviews-core holoviews jupyter matplotlib netcdf4 numpy pandas param pyct python scipy shapely xarray

I am now working on merging install steps in the working set into maximal groups.

jjoonathan avatar Mar 24 '20 20:03 jjoonathan

Starting, as usual, from sudo docker run -it continuumio/anaconda3,

This fails at Solving Environment:

conda install -yc pyviz bokeh cartopy

This succeeds:

conda install -yc pyviz geoviews-core bokeh datashader xarray holoviews jupyter matplotlib numpy pandas param netcdf4 python scipy
conda install -yc pyviz cartopy

Huh?

jjoonathan avatar Mar 24 '20 20:03 jjoonathan

It seems I must have prematurely assumed it would fail to solve once it reported that the initial solve failed. That was incorrect. Starting from sudo docker run -it continuumio/anaconda3,

This succeeds: conda install -yc pyviz geoviews-core bokeh datashader xarray holoviews jupyter matplotlib numpy pandas param netcdf4 python scipy pyct shapely cartopy

(it is the full list of geoviews dependencies less gdal and geopandas)

It just has to go through a long process:

Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: done

jjoonathan avatar Mar 24 '20 20:03 jjoonathan

gdal fails on its own. Starting from sudo docker run -it continuumio/anaconda3

we get:

(base) root@f3930e25dcba:/# conda install gdal
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: / 
Found conflicts! Looking for incompatible packages.
This can take several minutes.  Press CTRL-C to abort.
(... last time this took 18 hours, I'm not waiting that long to post ...)

jjoonathan avatar Mar 24 '20 20:03 jjoonathan

geopandas also fails on its own. Starting from sudo docker run -it continuumio/anaconda3

we get:

Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: / 
Found conflicts! Looking for incompatible packages.
This can take several minutes.  Press CTRL-C to abort.
(... last time this took 18 hours, I'm not waiting that long to post ...)

jjoonathan avatar Mar 24 '20 21:03 jjoonathan

Starting from sudo docker run -it continuumio/anaconda3

This works, albeit every step is very slow:

conda update anaconda
conda install gdal
conda install geopandas

I'm now going to see if conda update anaconda fixes conda install -c pyviz geoviews.

jjoonathan avatar Mar 24 '20 21:03 jjoonathan

Indeed, it does. Starting from sudo docker run -it continuumio/anaconda3, this works:

conda update anaconda
conda install -c pyviz geoviews

It seems reasonably clear at this point that this is not a geoviews issue so much as a conda ecosystem issue. I'll close the thread.

jjoonathan avatar Mar 24 '20 21:03 jjoonathan

Actually, scratch that, should conda update anaconda be added to the README? As it stands, following the README installation instructions does not work on linux.

jjoonathan avatar Mar 24 '20 21:03 jjoonathan

Sorry for all the pain you clearly had to go through here. I'd be happy to accept a PR that suggests that as a fix and lists a minimum conda version.

philippjfr avatar Mar 24 '20 23:03 philippjfr

Unfortunately it looks like the anaconda version that doesn't work has a name ("2020.02") while the anaconda "version" that does work does not have a name. The only concise workaround might be running an update command, which in the future may well have as much chance of breaking things as fixing them. See below.

Ok, so immediately after sudo docker run -it continuumio/anaconda3

I get:

(base) root@c1d5e120a425:/# conda list anaconda
anaconda                  2020.02                  py37_0  
anaconda-client           1.7.2                    py37_0  
anaconda-navigator        1.9.12                   py37_0  
anaconda-project          0.8.4                      py_0  

Attempting to install geoviews results in Solving Environment forever. When I run conda update anaconda, it gives this warning:

The following packages will be DOWNGRADED:
  anaconda                                   2020.02-py37_0 --> custom-py37_1

although most (all?) of the sub packages that I can see are actually being upgraded. Full logs attached . I guess anaconda update anaconda now means approximately what anaconda update --all used to mean, which leads to an undetermined anaconda version, which leads to poor ordering, which leads to update causing a "downgrade"? In any case, after running that command, conda install -c pyviz geoviews works and versions are listed as follows:

(base) root@c1d5e120a425:/# conda list anaconda
_anaconda_depends         2019.03                  py37_0  
anaconda                  custom                   py37_1  
anaconda-client           1.7.2                    py37_0  
anaconda-navigator        1.9.12                   py37_0  
anaconda-project          0.8.4                      py_0  

I am now testing conda update --all, the command recommended here for possible inclusion in the README.

jjoonathan avatar Mar 25 '20 13:03 jjoonathan

Ok, conda update --all works (that is, after running it, conda install -c pyviz geoviews completes with issue, albeit is has to do a "flexible solve" that takes a long time). PR incoming.

jjoonathan avatar Mar 25 '20 14:03 jjoonathan

I just set up a new mac, and after a fresh conda install (Anaconda3-2020.02-MacOSX-x86_64) I had the same exact problem:

(base) jonathandewerd@USXZM1MB6HUMD6R ~ % conda install geoviews
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: | 
Found conflicts! Looking for incompatible packages.

which was solved using the exact same solution (running conda update --all and then retrying conda install geoviews).

jjoonathan avatar Jun 09 '20 20:06 jjoonathan

It still needs conda install -c pyviz geoviews until we have packages updated on the default channels...

jbednar avatar Jun 09 '20 20:06 jbednar

Since I hadn't built heavily on my conda environment I took the opportunity to nuke it (run anaconda-clean and delete /opt/anaconda3) and try again with the correct channel. On top of a fresh Anaconda3-2020.02-MacOSX-x86_64 on Mac OS 10.15.2, it still chokes:

(base) jonathandewerd@USXZM1MB6HUMD6R ~ % conda install -c pyviz geoviews
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: \ 
Found conflicts! Looking for incompatible packages.

jjoonathan avatar Jun 10 '20 16:06 jjoonathan

Since the error looks the same between Mac OS X and linux I went back and dusted off my docker experiments. Here is what I've run so far. "echo AAA-WIN" corresponds to an experiment arbitrarily named AAA that resulted in successful installation while "echo AAF-FAIL" corresponds to an experiment arbitrarily named AAF that resulted in the failure mode seen above.

echo AAA-WIN ; sudo docker run continuumio/anaconda3 conda install -yc pyviz bokeh         datashader               holoviews jupyter matplotlib         numpy pandas param pyct python scipy         xarray
echo AAB-WIN ; sudo docker run continuumio/anaconda3 conda install -yc pyviz bokeh cartopy datashader               holoviews jupyter matplotlib         numpy pandas param pyct python scipy         xarray
echo AAC-WIN ; sudo docker run continuumio/anaconda3 conda install -yc pyviz bokeh         datashader geoviews-core holoviews jupyter matplotlib         numpy pandas param pyct python scipy         xarray
echo AAD-WIN ; sudo docker run continuumio/anaconda3 conda install -yc pyviz bokeh         datashader               holoviews jupyter matplotlib netcdf4 numpy pandas param pyct python scipy         xarray
echo AAE-WIN ; sudo docker run continuumio/anaconda3 conda install -yc pyviz bokeh         datashader               holoviews jupyter matplotlib         numpy pandas param pyct python scipy shapely xarray

echo AAF-FAIL; sudo docker run continuumio/anaconda3 conda install -yc pyviz bokeh cartopy datashader gdal geopandas geoviews-core holoviews jupyter matplotlib netcdf4 numpy pandas param pyct python scipy shapely xarray
echo AAG-FAIL; sudo docker run continuumio/anaconda3 conda install -yc pyviz bokeh cartopy datashader      geopandas geoviews-core holoviews jupyter matplotlib netcdf4 numpy pandas param pyct python scipy shapely xarray
echo AAH-FAIL; sudo docker run continuumio/anaconda3 conda install -yc pyviz bokeh cartopy datashader gdal           geoviews-core holoviews jupyter matplotlib netcdf4 numpy pandas param pyct python scipy shapely xarray
echo AAI-WIN ; sudo docker run continuumio/anaconda3 conda install -yc pyviz bokeh cartopy datashader                geoviews-core holoviews jupyter matplotlib netcdf4 numpy pandas param pyct python scipy shapely xarray

jjoonathan avatar Jun 10 '20 17:06 jjoonathan

Wow, it looks like this isn't even a scrap between gdal/geopandas and the rest, those packages may be directly responsible. EDIT: this is on Mac OS X, dirty environment.

(base) jonathandewerd@USXZM1MB6HUMD6R ~ % conda install gdal geopandas
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: \ 
Found conflicts!

jjoonathan avatar Jun 10 '20 18:06 jjoonathan

Both conda install gdal and conda install geopandas fail with "Found Conflicts!" on Mac OS X. Now trying the conda-forge channel.

jjoonathan avatar Jun 10 '20 18:06 jjoonathan

Linux experiments (updated with final FAIL/SUCCESS results, the "AA*" is just an experiment tag to keep them straight while running a bunch of them):

echo AAJ-FAIL; sudo docker run continuumio/anaconda3 conda install -y               gdal geopandas
echo AAK-FAIL; sudo docker run continuumio/anaconda3 conda install -y                    geopandas
echo AAL-FAIL; sudo docker run continuumio/anaconda3 conda install -y               gdal 
echo AAM-FAIL; sudo docker run continuumio/anaconda3 conda install -yc conda-forge       geopandas
echo AAN-FAIL; sudo docker run continuumio/anaconda3 conda install -yc conda-forge  gdal 
echo AAO-SUCCESS; sudo docker run continuumio/anaconda3 bash -c 'conda update -y --all; conda install -y -c pyviz geoviews'

jjoonathan avatar Jun 10 '20 18:06 jjoonathan

New information on Mac OS X:

# Pristine Mac OS X 10.15.2
# Install Anaconda3-2020.02-MacOSX-x86_64.pkg
conda install -y -c pyviz geoviews # Failure
conda update anaconda
conda install -y -c pyviz geoviews # Slow Success (Solving... failed... Solving... failed... Solving... done)
# Pristine Mac OS X 10.15.2
# Install Anaconda3-2020.02-MacOSX-x86_64.pkg
conda install -y -c pyviz geoviews # Failure
conda install -y -c pyviz -c conda-forge geoviews # Success

jjoonathan avatar Jun 10 '20 21:06 jjoonathan

I can confirm that I can't conda install from the pyviz channel in a completely clean miniconda environment. Here is what conda reports and it looks like a GDAL issue to me.

conda install -c pyviz geoviews Collecting package metadata (current_repodata.json): done Solving environment: failed with initial frozen solve. Retrying with flexible solve. Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source. Collecting package metadata (repodata.json): done Solving environment: failed with initial frozen solve. Retrying with flexible solve. Solving environment: \ Found conflicts! Looking for incompatible packages. This can take several minutes. Press CTRL-C to abort. failed

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Package gdal conflicts for: geoviews -> gdal Package bokeh conflicts for: geoviews -> bokeh[version='>=0.12.13|>=1.0.0|>=2.0.0'] Package libffi conflicts for: python=3.8 -> libffi[version='>=3.2.1,<3.3a0|>=3.3,<3.4.0a0'] Package shapely conflicts for: geoviews -> shapely Package geopandas conflicts for: geoviews -> geopandas Package xarray conflicts for: geoviews -> xarray Package jupyter conflicts for: geoviews -> jupyter Package param conflicts for: geoviews -> param[version='>=1.6.1,<2.0|>=1.9.3,<2.0'] Package numpy conflicts for: geoviews -> numpy[version='>=1.0'] Package sqlite conflicts for: python=3.8 -> sqlite[version='>=3.30.0,<4.0a0|>=3.30.1,<4.0a0|>=3.31.1,<4.0a0|>=3.32.3,<4.0a0'] Package libgdal conflicts for: geoviews -> libgdal Package libcxx conflicts for: python=3.8 -> libcxx[version='>=4.0.1'] Package pip conflicts for: python=3.8 -> pip Package holoviews conflicts for: geoviews -> holoviews[version='>=1.10.1|>=1.11.0|>=1.11.1|>=1.13.0|>=1.9.0'] Package geoviews-core conflicts for: geoviews -> geoviews-core[version='1.5.0.|1.5.1.|1.5.2.|1.5.3.|1.6.0.|1.6.1.|1.6.2.|1.6.3.|1.6.4.|1.6.5.|1.6.6.|1.7.0.|1.8.0.|1.8.1.|>=1.8.1,<1.8.2.0a0'] Package notebook conflicts for: geoviews -> notebook Package zlib conflicts for: python=3.8 -> zlib[version='>=1.2.11,<1.3.0a0'] Package readline conflicts for: python=3.8 -> readline[version='>=7.0,<8.0a0|>=8.0,<9.0a0'] Package netcdf4 conflicts for: geoviews -> netcdf4[version='<1.4.0'] Package matplotlib conflicts for: geoviews -> matplotlib[version='>2.2'] Package pyct conflicts for: geoviews -> pyct Package tk conflicts for: python=3.8 -> tk[version='>=8.6.10,<8.7.0a0|>=8.6.8,<8.7.0a0'] Package datashader conflicts for: geoviews -> datashader Package scipy conflicts for: geoviews -> scipy Package pandas conflicts for: geoviews -> pandas Package openssl conflicts for: python=3.8 -> openssl[version='>=1.1.1d,<1.1.2a|>=1.1.1e,<1.1.2a|>=1.1.1g,<1.1.2a'] Package xz conflicts for: python=3.8 -> xz[version='>=5.2.4,<6.0a0|>=5.2.5,<6.0a0'] Package cartopy conflicts for: geoviews -> cartopy[version='>=0.14.2|>=0.16.0|>=0.17.0'] Package ncurses conflicts for: python=3.8 -> ncurses[version='>=6.1,<7.0a0|>=6.2,<7.0a0']

jlstevens avatar Jul 20 '20 15:07 jlstevens

Note, installing from conda-forge in a fresh env does work fine for me right now.

jlstevens avatar Jul 21 '20 14:07 jlstevens

FYI got a slightly different error message yesterday regarding install via conda.

ray@ray-MS-7B43:~$ conda install -c pyviz geoviews
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: |
Found conflicts! Looking for incompatible packages.
This can take several minutes. Press CTRL-C to abort.
failed

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versionsThe following specifications were found to be incompatible with your CUDA driver:

feature:/linux-64::__cuda==10.2=0
Your installed CUDA driver is: 10.2

raybellwaves avatar Aug 03 '20 20:08 raybellwaves

Yeah, a new conda version came out last month. I also didn't have success with conda install -c pyviz geoviews but I did have success with:

conda update --all
conda install -c pyviz -c conda-forge geoviews

jjoonathan avatar Aug 03 '20 21:08 jjoonathan

@philippjfr Do you know if there are any updates on this? It would be nice to be able to install geoviews from defaults...

jlstevens avatar Aug 31 '20 14:08 jlstevens

Impossible to install geoviews with last Anaconda distrib (Anaconda3-2020.11-Linux-x86_64.sh).

conda update --all
conda install -c pyviz  geoviews

runs forever

PBrockmann avatar Nov 21 '20 08:11 PBrockmann

Did you try including -c conda-forge? In my previous post, -c conda-forge was a necessary component, and I have previously observed lack of convergence using just -c pyviz.

jjoonathan avatar Nov 22 '20 06:11 jjoonathan

Yes, I tried. The installation works but the release that is installed is the 1.5.0, not the last 1.8.2

PBrockmann avatar Nov 22 '20 10:11 PBrockmann