ESMValGroup / ESMValCore

ESMValCore: A community tool for pre-processing data from Earth system models in CMIP and running analysis scripts.
https://www.esmvaltool.org
Apache License 2.0
42 stars 38 forks source link

Use mamba instead of conda #1227

Closed valeriupredoi closed 2 years ago

valeriupredoi commented 3 years ago

mamba is a fast alternative to conda; oftentimes env solving is done factors faster with mamba than with conda, and the results should be identical. I am running a systematic comparison mamba vs conda here so we start using it instead of Madame Conda.

Operating system

Distributor ID: Ubuntu
Description:    Ubuntu 16.04.7 LTS
Release:    16.04
Codename:   xenial

Conda/Mamba versions

(base) valeriu@valeriu-PORTEGE-Z30-C:~/ESMValCore$ mamba --version
mamba 0.15.0
conda 4.10.3

mamba build:

(base) valeriu@valeriu-PORTEGE-Z30-C:~/ESMValCore$ conda list mamba
# packages in environment at /home/valeriu/miniconda3:
#
# Name                    Version                   Build  Channel
mamba                     0.15.0           py39h951de11_0    conda-forge

ESMValCore Tests

Environment comparison mamba-conda

conda env create -n esmvaltool -f environment.yml vs mamba env create -n esmvaltool -f environment.yml

env export after installing esmvalcore

mamba-env.txt conda-env.txt

Env differences:

(esmvaltool-conda) valeriu@valeriu-PORTEGE-Z30-C:~/ESMValCore$ diff ~/mamba-env.txt ~/conda-env.txt 
1c1
< name: esmvaltool
---
> name: esmvaltool-conda
151c151
<   - pyke=1.1.1=py39hf3d152e_1003
---
>   - pyke=1.1.1=pyhd8ed1ab_1004
204c204
<     - chardet==4.0.0
---
>     - charset-normalizer==2.0.0
219c219
<     - idna==2.10
---
>     - idna==3.2
264c264
<     - requests==2.25.1
---
>     - requests==2.26.0
289c289
< prefix: /home/valeriu/miniconda3/envs/esmvaltool
---
> prefix: /home/valeriu/miniconda3/envs/esmvaltool-conda

-> nothing major at all!

Test session with mamba and conda

Mamba:

==================================================================== test session starts ====================================================================
platform linux -- Python 3.9.6, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
rootdir: /home/valeriu/ESMValCore, configfile: setup.cfg
plugins: html-3.1.1, metadata-1.11.0, xdist-2.3.0, env-0.6.2, cov-2.12.1, mock-3.6.1, mypy-0.8.1, forked-1.3.0, flake8-1.0.7

Conda:

==================================================================== test session starts ====================================================================
platform linux -- Python 3.9.6, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
rootdir: /home/valeriu/ESMValCore, configfile: setup.cfg
plugins: html-3.1.1, metadata-1.11.0, xdist-2.3.0, env-0.6.2, cov-2.12.1, mock-3.6.1, mypy-0.8.1, forked-1.3.0, flake8-1.0.7

mamba install from conda-forge vs conda install from conda-forge

Directive:

mamba create -n esmvalcore_mamba
conda activate esmvalcore_mamba
mamba install -c conda-forge esmvalcore

environment: esmvalcore_mamba.txt time to install: <2min

Directive:

conda create -n esmvalcore_conda
conda activate esmvalcore_conda
conda install -c conda-forge esmvalcore

environment: esmvalcore_conda.txt time to install: about 6min

Environment differences:

(esmvalcore_conda) valeriu@valeriu-PORTEGE-Z30-C:~/ESMValCore$ diff ~/esmvalcore_mamba.txt ~/esmvalcore_conda.txt 
1c1
< name: esmvalcore_mamba
---
> name: esmvalcore_conda
36c36
<   - decorator=4.4.2=py_0
---
>   - decorator=5.0.9=pyhd8ed1ab_0
42c42
<   - fiona=1.8.18=py39h3573629_0
---
>   - fiona=1.8.18=py39h494ca2c_1
55c55
<   - gdal=3.1.4=py39h3f36f43_8
---
>   - gdal=3.2.1=py39h409cc32_7
93c93
<   - libgdal=3.1.4=h38ff51b_8
---
>   - libgdal=3.2.1=h38ff51b_7
130c130
<   - networkx=2.6.1=pyhd8ed1ab_1
---
>   - networkx=2.5=py_0
153c153
<   - pyke=1.1.1=py39hf3d152e_1003
---
>   - pyke=1.1.1=pyhd8ed1ab_1004
207c207
< prefix: /home/valeriu/miniconda3/envs/esmvalcore_mamba
---
> prefix: /home/valeriu/miniconda3/envs/esmvalcore_conda

-> again, minor differences it seems mamba picks up a couple packages slightly older than conda, that's about it.

mamba build vs conda build

Do we even want to bother testing this one since mamba build uses conda build under the hood anyway?

Conclusion: mamba is as safe as Bank of England for esmvalcore

ESMValTool Tests

mamba vs conda env creation

mamba env create -n esmvaltool -f environment.yml duration: about 6min to full env creation (includes downloading most packages) env: esmvaltool_mamba.txt test environment:

==================================================================== test session starts ====================================================================
platform linux -- Python 3.9.6, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
rootdir: /home/valeriu/ESMValTool, configfile: setup.cfg
plugins: html-3.1.1, metadata-1.11.0, xdist-2.3.0, env-0.6.2, cov-2.12.1, forked-1.3.0, flake8-1.0.7

tests pass: OK help+version: OK does it actually run: yes

conda create -n esmvaltool-conda "python=3.9.6" && conda env update -n esmvaltool-conda (note that I freeze the Python version to have the same setup as the mamba env that has Python=3.9.6) duration: max memory: about 1.5G duration: about 3min (nothing was downloaded, conda recycled the already downloaded packages for the mamba env) env: esmvaltool_conda.txt

Environment differences:

(esmvaltool-conda) valeriu@valeriu-PORTEGE-Z30-C:~/ESMValTool$ diff ~/esmvaltool_mamba.txt ~/esmvaltool_conda.txt 
1c1
< name: esmvaltool
---
> name: esmvaltool-conda
40c40
<   - cython=0.29.23=py39he80948d_1
---
>   - cython=0.29.24=py39he80948d_0
45c45
<   - decorator=4.4.2=py_0
---
>   - decorator=5.0.9=pyhd8ed1ab_0
52c52
<   - fftw=3.3.9=h27cfd23_1
---
>   - fftw=3.3.8=nompi_hfc0cae8_1114
66,67c66,67
<   - fsspec=2021.6.1=pyhd8ed1ab_0
<   - gcc_impl_linux-64=7.5.0=habd7529_19
---
>   - fsspec=2021.7.0=pyhd8ed1ab_0
>   - gcc_impl_linux-64=7.5.0=hda68d29_13
87c87
<   - gxx_impl_linux-64=7.5.0=hd0bb8aa_19
---
>   - gxx_impl_linux-64=7.5.0=h64c220c_13
98c98
<   - imagemagick=7.0.11_12=pl5320h0cb4662_0
---
>   - imagemagick=7.0.10_28=pl5262hfcab4aa_3
125d124
<   - libgcc-devel_linux-64=7.5.0=hda03d7c_19
146d144
<   - libstdcxx-devel_linux-64=7.5.0=hb016644_19
177c175
<   - networkx=2.6.1=pyhd8ed1ab_1
---
>   - networkx=2.5=py_0
191c189
<   - perl=5.32.1=0_h7f98852_perl5
---
>   - perl=5.26.2=h36c2ea0_1008
206c204
<   - pyke=1.1.1=py39hf3d152e_1003
---
>   - pyke=1.1.1=pyhd8ed1ab_1004
380c378
<     - platformdirs==2.0.0
---
>     - platformdirs==2.0.2
434c432
< prefix: /home/valeriu/miniconda3/envs/esmvaltool
---
> prefix: /home/valeriu/miniconda3/envs/esmvaltool-conda

Nothing to worry, it looks like mamba installs an extra libgcc-devel_linux-64=7.5.0=hda03d7c_19 that doesn't show up in the conda env, not sure why, but it's good there are no missing libs.

zklaus commented 3 years ago

Thanks, @valeriupredoi, this is good information. I wonder though, what the associated action is? What is the criterion for closing this issue?

valeriupredoi commented 3 years ago

Hang on, still testing, it's not an issue perse, it's a place where I put test results, @bouweandela and meself decided to put mamba through the paces before we start using it proper

valeriupredoi commented 3 years ago

installing esmvaltool from conda gets us pretty much the same differences in envs (note the mamba install is MUCH faster)

(conda_install_conda) valeriu@valeriu-PORTEGE-Z30-C:~/ESMValTool$ diff ~/esmvaltool_fromconda_mamba.txt ~/esmvaltool_fromconda_conda.txt
1c1
< name: conda_install_mamba
---
> name: conda_install_conda
16d15
<   - binutils=2.36.1=hdd6e379_1
29d27
<   - c-compiler=1.1.1=h516909a_0
49d46
<   - compilers=1.1.1=0
52d48
<   - cxx-compiler=1.1.1=hc9558a2_0
58c54
<   - decorator=4.4.2=py_0
---
>   - decorator=5.0.9=pyhd8ed1ab_0
70c66
<   - esmvaltool-r=2.2.0=0
---
>   - esmvaltool-r=2.1.0=0
82d77
<   - fortran-compiler=1.1.1=he991be0_0
87c82
<   - gcc_impl_linux-64=7.5.0=habd7529_19
---
>   - gcc_impl_linux-64=7.5.0=hda68d29_13
105c100
<   - gxx_impl_linux-64=7.5.0=hd0bb8aa_19
---
>   - gxx_impl_linux-64=7.5.0=h64c220c_13
149d143
<   - libgcc-devel_linux-64=7.5.0=hda03d7c_19
169d162
<   - libstdcxx-devel_linux-64=7.5.0=hb016644_19
197c190
<   - networkx=2.6.1=pyhd8ed1ab_1
---
>   - networkx=2.5=py_0
227c220
<   - pyke=1.1.1=py39hf3d152e_1003
---
>   - pyke=1.1.1=pyhd8ed1ab_1004
242a236,237
>   - r-curl=4.3.2=r40hcfec24a_0
>   - r-udunits2=0.13=r40hcfec24a_1004
252c247
<   - seaborn=0.11.1=ha770c72_0
---
>   - seaborn=0.11.1=hd8ed1ab_1
314c309
< prefix: /home/valeriu/miniconda3/envs/conda_install_mamba
---
> prefix: /home/valeriu/miniconda3/envs/conda_install_conda

One thing I noticed is that when conda (and mamba for the matter) install esmvaltool from conda, the version displayed via conda list esmvaltool is 2.1:

(conda_install_conda) valeriu@valeriu-PORTEGE-Z30-C:~/ESMValTool$ conda list esmvaltool
# packages in environment at /home/valeriu/miniconda3/envs/conda_install_conda:
#
# Name                    Version                   Build  Channel
esmvaltool                2.1.0                         0    esmvalgroup
esmvaltool-julia          2.2.0                         0    esmvalgroup
esmvaltool-ncl            2.2.0                         0    esmvalgroup
esmvaltool-python         2.2.0              pyhd8ed1ab_2    conda-forge
esmvaltool-r              2.1.0                         0    esmvalgroup

which is dodgy (the actual package installed is 2.2.0 indeed). I looked all over https://anaconda.org/esmvalgroup/esmvaltool and can't see any reference for 2.1 -> @zklaus do you know where the conda displayed version comes from?

valeriupredoi commented 3 years ago

nevermind my last comment, have no idea why that 2.1 creeped up in me env, did a fresh install and got the right versioning:

# packages in environment at /home/valeriu/miniconda3-fresh/envs/esmvaltool-conda:
#
# Name                    Version                   Build  Channel
esmvaltool                2.2.0                         0    esmvalgroup
esmvaltool-julia          2.2.0                         0    esmvalgroup
esmvaltool-ncl            2.2.0                         0    esmvalgroup
esmvaltool-python         2.2.0                      py_0    esmvalgroup
esmvaltool-r              2.2.0                         0    esmvalgroup

~but note that that's off esmvalgroup where we should pick it up from conda-forge~ no, am a dumber, it's not made it yet to conda-forge :man_facepalming:

bouweandela commented 3 years ago

I tried installing ESMValTool on Mistral with mamba instead of conda and ran into problems. When I install with conda things work just fine.

When I try to run a recipe in the mamba created environment, the tool crashes with:

ERROR:esmvalcore._main:Program terminated abnormally, see stack trace below for more information:
Traceback (most recent call last):
  File "/pf/b/b381141/conda/envs/esmvaltool/lib/python3.9/site-packages/esmvalcore/_main.py", line 433, in run
    fire.Fire(ESMValTool())
  File "/pf/b/b381141/conda/envs/esmvaltool/lib/python3.9/site-packages/fire/core.py", line 141, in Fire
    component_trace = _Fire(component, args, parsed_flag_args, context, name)
  File "/pf/b/b381141/conda/envs/esmvaltool/lib/python3.9/site-packages/fire/core.py", line 466, in _Fire
    component, remaining_args = _CallAndUpdateTrace(
  File "/pf/b/b381141/conda/envs/esmvaltool/lib/python3.9/site-packages/fire/core.py", line 681, in _CallAndUpdateTrace
    component = fn(*varargs, **kwargs)
  File "/pf/b/b381141/conda/envs/esmvaltool/lib/python3.9/site-packages/esmvalcore/_main.py", line 357, in run
    from ._recipe import TASKSEP
  File "/pf/b/b381141/conda/envs/esmvaltool/lib/python3.9/site-packages/esmvalcore/_recipe.py", line 14, in <module>
    from . import _recipe_checks as check
  File "/pf/b/b381141/conda/envs/esmvaltool/lib/python3.9/site-packages/esmvalcore/_recipe_checks.py", line 12, in <module>
    from .preprocessor import TIME_PREPROCESSORS, PreprocessingTask
  File "/pf/b/b381141/conda/envs/esmvaltool/lib/python3.9/site-packages/esmvalcore/preprocessor/__init__.py", line 9, in <module>
    from .._provenance import TrackedFile
  File "/pf/b/b381141/conda/envs/esmvaltool/lib/python3.9/site-packages/esmvalcore/_provenance.py", line 7, in <module>
    from PIL import Image
  File "/pf/b/b381141/conda/envs/esmvaltool/lib/python3.9/site-packages/PIL/Image.py", line 114, in <module>
    from . import _imaging as core
ImportError: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /pf/b/b381141/conda/envs/esmvaltool/lib/python3.9/site-packages/PIL/_imaging.cpython-39-x86_64-linux-gnu.so)

Versions: mamba 0.7.3 conda 4.10.3

It looks like the problem is that mamba installs the pillow package from the defaults channel instead of from conda-forge. The mamba installed pillow package tries to load a system library (/lib64/libc.so.6) that was probably present on the system that it was built on and subsequently fails because it is not present on the system that I'm trying to run the tool on.

mamba creates the environment with these versions ``` $ mamba env create -n esmvaltool -f environment.yml pkgs/main/linux-64 [====================] (00m:00s) No change pkgs/r/linux-64 [====================] (00m:00s) No change pkgs/r/noarch [====================] (00m:00s) No change conda-forge/noarch [====================] (00m:00s) No change conda-forge/linux-64 [====================] (00m:00s) No change pkgs/main/noarch [====================] (00m:00s) Done Looking for: ["cartopy[version='>=0.18']", 'compilers', 'gdal', 'esmpy', "esmvalcore[version='>=2.3.0,<2.4']", "iris[version='>=3.0.1']", "matplotlib[version='>3.3.1,<3.4']", "mpich[version='<3.4']", "cdo[version='>=1.9.7']", 'eccodes!=2.19.0', 'imagemagick', 'nco', 'ruamel.yaml', 'scikit-learn', "ncl[version='>=6.5.0']", "r-base[version='>=3.5']", 'r-docopt', 'r-lintr', 'r-styler', 'r-yaml', 'r-udunits2'] Transaction Prefix: /pf/b/b381141/conda/envs/esmvaltool Updating specs: - cartopy[version='>=0.18'] - compilers - gdal - esmpy - esmvalcore[version='>=2.3.0,<2.4'] - iris[version='>=3.0.1'] - matplotlib[version='>3.3.1,<3.4'] - mpich[version='<3.4'] - cdo[version='>=1.9.7'] - eccodes !=2.19.0 - imagemagick - nco - ruamel.yaml - scikit-learn - ncl[version='>=6.5.0'] - r-base[version='>=3.5'] - r-docopt - r-lintr - r-styler - r-yaml - r-udunits2 Package Version Build Channel Size ──────────────────────────────────────────────────────────────────────────────────────────────────────── Install: ──────────────────────────────────────────────────────────────────────────────────────────────────────── _libgcc_mutex 0.1 conda_forge conda-forge/linux-64 Cached _openmp_mutex 4.5 1_gnu conda-forge/linux-64 Cached _r-mutex 1.0.1 anacondar_1 conda-forge/noarch Cached antlr-python-runtime 4.7.2 py39hf3d152e_1002 conda-forge/linux-64 Cached atk-1.0 2.36.0 h3371d22_4 conda-forge/linux-64 Cached attrs 21.2.0 pyhd8ed1ab_0 conda-forge/noarch Cached binutils 2.36.1 hdd6e379_1 conda-forge/linux-64 Cached binutils_impl_linux-64 2.36.1 h193b22a_1 conda-forge/linux-64 Cached binutils_linux-64 2.36 hf3e587d_33 conda-forge/linux-64 Cached bokeh 2.3.3 py39hf3d152e_0 conda-forge/linux-64 Cached boost-cpp 1.74.0 h9359b55_0 conda-forge/linux-64 Cached brotlipy 0.7.0 py39h3811e60_1001 conda-forge/linux-64 Cached bwidget 1.9.14 0 conda-forge/linux-64 Cached bzip2 1.0.8 h7f98852_4 conda-forge/linux-64 Cached c-ares 1.17.1 h7f98852_1 conda-forge/linux-64 Cached c-compiler 1.1.1 h516909a_0 conda-forge/linux-64 Cached ca-certificates 2021.7.5 h06a4308_1 pkgs/main/linux-64 Cached cairo 1.16.0 h488836b_1006 conda-forge/linux-64 Cached cartopy 0.18.0 py39h32a4312_7 conda-forge/linux-64 Cached cdo 1.9.8 h8a0f29a_13 conda-forge/linux-64 Cached certifi 2021.5.30 py39hf3d152e_0 conda-forge/linux-64 Cached cf-units 3.0.1 py39hce5d2b2_0 conda-forge/linux-64 Cached cffi 1.14.6 py39he32792d_0 conda-forge/linux-64 Cached cfitsio 3.470 hce51eda_7 conda-forge/linux-64 Cached cftime 1.2.1 py39h1dff97c_1 conda-forge/linux-64 Cached chardet 4.0.0 py39hf3d152e_1 conda-forge/linux-64 Cached charset-normalizer 2.0.0 pyhd8ed1ab_0 conda-forge/noarch Cached click 7.1.2 pyh9f0ad1d_0 conda-forge/noarch Cached click-plugins 1.1.1 py_0 conda-forge/noarch Cached cligj 0.7.2 pyhd8ed1ab_0 conda-forge/noarch Cached cloudpickle 1.6.0 py_0 conda-forge/noarch Cached compilers 1.1.1 0 conda-forge/linux-64 Cached cryptography 3.4.7 py39hbca0aa6_0 conda-forge/linux-64 Cached curl 7.76.1 h979ede3_1 conda-forge/linux-64 Cached cxx-compiler 1.1.1 hc9558a2_0 conda-forge/linux-64 Cached cycler 0.10.0 py_2 conda-forge/noarch Cached cython 0.29.24 py39he80948d_0 conda-forge/linux-64 Cached cytoolz 0.11.0 py39h3811e60_3 conda-forge/linux-64 Cached dask 2021.7.1 pyhd8ed1ab_0 conda-forge/noarch Cached dask-core 2021.7.1 pyhd8ed1ab_0 conda-forge/noarch Cached dbus 1.13.18 hb2f20db_0 pkgs/main/linux-64 Cached decorator 4.4.2 py_0 conda-forge/noarch Cached distributed 2021.7.1 py39hf3d152e_0 conda-forge/linux-64 Cached eccodes 2.19.1 hea64003_0 conda-forge/linux-64 Cached esmf 8.0.1 mpi_mpich_h61b2105_102 conda-forge/linux-64 Cached esmpy 8.0.1 mpi_mpich_py39h432445a_102 conda-forge/linux-64 Cached esmvalcore 2.3.1 pyhd8ed1ab_0 conda-forge/noarch Cached expat 2.4.1 h9c3ff4c_0 conda-forge/linux-64 Cached fftw 3.3.9 h27cfd23_1 pkgs/main/linux-64 Cached fiona 1.8.18 py39h3573629_0 conda-forge/linux-64 Cached fire 0.4.0 pyh44b312d_0 conda-forge/noarch Cached font-ttf-dejavu-sans-mono 2.37 hab24e00_0 conda-forge/noarch Cached font-ttf-inconsolata 3.000 h77eed37_0 conda-forge/noarch Cached font-ttf-source-code-pro 2.038 h77eed37_0 conda-forge/noarch Cached font-ttf-ubuntu 0.83 hab24e00_0 conda-forge/noarch Cached fontconfig 2.13.1 hba837de_1005 conda-forge/linux-64 Cached fonts-conda-ecosystem 1 0 conda-forge/noarch Cached fonts-conda-forge 1 0 conda-forge/noarch Cached fortran-compiler 1.1.1 he991be0_0 conda-forge/linux-64 Cached freetype 2.10.4 h0708190_1 conda-forge/linux-64 Cached freexl 1.0.6 h7f98852_0 conda-forge/linux-64 Cached fribidi 1.0.10 h516909a_0 conda-forge/linux-64 Cached fsspec 2021.7.0 pyhd8ed1ab_0 conda-forge/noarch Cached gcc_impl_linux-64 7.5.0 habd7529_19 conda-forge/linux-64 Cached gcc_linux-64 7.5.0 h47867f9_33 conda-forge/linux-64 Cached gdal 3.1.4 py39h3f36f43_1 conda-forge/linux-64 Cached gdk-pixbuf 2.42.6 h04a7f16_0 conda-forge/linux-64 Cached geos 3.8.1 he1b5a44_0 conda-forge/linux-64 Cached geotiff 1.6.0 h5d11630_3 conda-forge/linux-64 Cached gettext 0.21.0 hf68c758_0 pkgs/main/linux-64 Cached gfortran_impl_linux-64 7.5.0 h56cb351_19 conda-forge/linux-64 Cached gfortran_linux-64 7.5.0 h78c8a43_33 conda-forge/linux-64 Cached ghostscript 9.54.0 h9c3ff4c_1 conda-forge/linux-64 Cached giflib 5.2.1 h516909a_2 conda-forge/linux-64 Cached glib 2.68.3 h9c3ff4c_0 conda-forge/linux-64 Cached glib-tools 2.68.3 h9c3ff4c_0 conda-forge/linux-64 Cached graphite2 1.3.14 h23475e2_0 pkgs/main/linux-64 Cached graphviz 2.47.0 he056042_1 conda-forge/linux-64 Cached gsl 2.6 he838d99_2 conda-forge/linux-64 Cached gst-plugins-base 1.14.5 h0935bb2_2 conda-forge/linux-64 Cached gstreamer 1.18.4 h76c114f_2 conda-forge/linux-64 Cached gtk2 2.24.33 hab0c2f8_0 conda-forge/linux-64 Cached gts 0.7.6 h64030ff_2 conda-forge/linux-64 Cached gxx_impl_linux-64 7.5.0 hd0bb8aa_19 conda-forge/linux-64 Cached gxx_linux-64 7.5.0 h555fc39_33 conda-forge/linux-64 Cached harfbuzz 2.7.2 hb1ce69c_1 conda-forge/linux-64 Cached hdf4 4.2.15 h10796ff_3 conda-forge/linux-64 Cached hdf5 1.10.6 mpi_mpich_hc41e3f9_1011 conda-forge/linux-64 Cached hdfeos2 2.20 h64bfcee_1000 conda-forge/linux-64 Cached hdfeos5 5.1.16 hb4ce793_7 conda-forge/linux-64 Cached heapdict 1.0.1 py_0 conda-forge/noarch Cached html5lib 1.1 pyh9f0ad1d_0 conda-forge/noarch Cached icu 67.1 he1b5a44_0 conda-forge/linux-64 Cached idna 3.2 pyhd3eb1b0_0 pkgs/main/noarch Cached imagemagick 7.0.11_12 pl5320h0cb4662_0 conda-forge/linux-64 Cached iris 3.0.3 py39hf3d152e_0 conda-forge/linux-64 Cached isodate 0.6.0 py_1 conda-forge/noarch Cached jasper 1.900.1 h07fcdf6_1006 conda-forge/linux-64 Cached jbig 2.1 h7f98852_2003 conda-forge/linux-64 Cached jinja2 3.0.1 pyhd8ed1ab_0 conda-forge/noarch Cached joblib 1.0.1 pyhd8ed1ab_0 conda-forge/noarch Cached jpeg 9d h516909a_0 conda-forge/linux-64 Cached json-c 0.13.1 hbfbb72e_1002 conda-forge/linux-64 Cached kealib 1.4.14 hcc255d8_2 conda-forge/linux-64 Cached keepalive 0.5 py39hf3d152e_5 conda-forge/linux-64 Cached kernel-headers_linux-64 2.6.32 he073ed8_14 conda-forge/noarch Cached kiwisolver 1.3.1 py39h1a9c180_1 conda-forge/linux-64 Cached krb5 1.17.2 h926e7f8_0 conda-forge/linux-64 Cached latexcodec 2.0.1 pyh9f0ad1d_0 conda-forge/noarch Cached lcms2 2.12 hddcbb42_0 conda-forge/linux-64 Cached ld_impl_linux-64 2.36.1 hea4e1c9_1 conda-forge/linux-64 Cached libaec 1.0.5 h9c3ff4c_0 conda-forge/linux-64 Cached libblas 3.9.0 8_openblas conda-forge/linux-64 Cached libcblas 3.9.0 8_openblas conda-forge/linux-64 Cached libclang 11.1.0 default_ha53f305_1 conda-forge/linux-64 Cached libcurl 7.76.1 hc4aaa36_1 conda-forge/linux-64 Cached libdap4 3.20.6 hd7c4107_2 conda-forge/linux-64 Cached libedit 3.1.20210216 h27cfd23_1 pkgs/main/linux-64 Cached libev 4.33 h516909a_1 conda-forge/linux-64 Cached libevent 2.1.10 hcdb4288_3 conda-forge/linux-64 Cached libffi 3.3 h58526e2_2 conda-forge/linux-64 Cached libgcc-devel_linux-64 7.5.0 hda03d7c_19 conda-forge/linux-64 Cached libgcc-ng 11.1.0 hc902ee8_2 conda-forge/linux-64 Cached libgd 2.3.0 h6e6070c_0 conda-forge/linux-64 Cached libgdal 3.1.4 h50e41a3_1 conda-forge/linux-64 Cached libgfortran-ng 7.5.0 h14aa051_19 conda-forge/linux-64 Cached libgfortran4 7.5.0 h14aa051_19 conda-forge/linux-64 Cached libglib 2.68.3 h3e27bee_0 conda-forge/linux-64 Cached libgomp 11.1.0 hc902ee8_2 conda-forge/linux-64 Cached libiconv 1.16 h516909a_0 conda-forge/linux-64 Cached libkml 1.3.0 h238a007_1014 conda-forge/linux-64 Cached liblapack 3.9.0 8_openblas conda-forge/linux-64 Cached libllvm11 11.1.0 hf817b99_2 conda-forge/linux-64 Cached libnetcdf 4.7.4 mpi_mpich_hdef422e_7 conda-forge/linux-64 Cached libnghttp2 1.43.0 h812cca2_0 conda-forge/linux-64 Cached libopenblas 0.3.12 pthreads_hb3c22a3_1 conda-forge/linux-64 Cached libpng 1.6.37 hed695b0_2 conda-forge/linux-64 Cached libpq 12.3 hfd2b0eb_3 conda-forge/linux-64 Cached librsvg 2.50.3 hfa39831_1 conda-forge/linux-64 Cached librttopo 1.1.0 hb271727_4 conda-forge/linux-64 Cached libspatialite 5.0.1 h6ec7341_0 conda-forge/linux-64 Cached libssh2 1.9.0 ha56f1ee_6 conda-forge/linux-64 Cached libstdcxx-devel_linux-64 7.5.0 hb016644_19 conda-forge/linux-64 Cached libstdcxx-ng 11.1.0 h56837e0_2 conda-forge/linux-64 Cached libtiff 4.2.0 hbd63e13_2 conda-forge/linux-64 Cached libtool 2.4.6 h58526e2_1007 conda-forge/linux-64 Cached libuuid 2.32.1 h14c3975_1000 conda-forge/linux-64 Cached libwebp 1.2.0 h3452ae3_0 conda-forge/linux-64 Cached libwebp-base 1.2.0 h7f98852_2 conda-forge/linux-64 Cached libxcb 1.14 h7b6447c_0 pkgs/main/linux-64 Cached libxkbcommon 1.0.3 he3ba5ed_0 conda-forge/linux-64 Cached libxml2 2.9.10 h68273f3_2 conda-forge/linux-64 Cached libxslt 1.1.33 hf705e74_1 conda-forge/linux-64 Cached locket 0.2.1 py39h06a4308_1 pkgs/main/linux-64 Cached lxml 4.6.3 py39h107f48f_0 conda-forge/linux-64 Cached lz4-c 1.9.3 h9c3ff4c_0 conda-forge/linux-64 Cached make 4.3 hd18ef5c_1 conda-forge/linux-64 Cached markupsafe 2.0.1 py39h3811e60_0 conda-forge/linux-64 Cached matplotlib 3.3.4 py39hf3d152e_0 conda-forge/linux-64 Cached matplotlib-base 3.3.4 py39h2fa2bec_0 conda-forge/linux-64 Cached mpi 1.0 mpich conda-forge/linux-64 Cached mpi4py 3.0.3 py39h6438238_4 conda-forge/linux-64 Cached mpich 3.3.2 h846660c_5 conda-forge/linux-64 Cached msgpack-python 1.0.2 py39h1a9c180_1 conda-forge/linux-64 Cached munch 2.5.0 py_0 conda-forge/noarch Cached mysql-common 8.0.25 ha770c72_0 conda-forge/linux-64 Cached mysql-libs 8.0.25 h935591d_0 conda-forge/linux-64 Cached nc-time-axis 1.2.0 pyhd8ed1ab_2 conda-forge/noarch Cached ncl 6.6.2 h087f628_23 conda-forge/linux-64 Cached nco 4.9.8 he39ba57_1 conda-forge/linux-64 Cached ncurses 6.2 h58526e2_4 conda-forge/linux-64 Cached netcdf-fortran 4.5.3 mpi_mpich_h3923e1a_1 conda-forge/linux-64 Cached netcdf4 1.5.6 nompi_py39h36800e2_102 conda-forge/linux-64 Cached networkx 2.6.1 pyhd8ed1ab_1 conda-forge/noarch Cached nspr 4.30 h9c3ff4c_0 conda-forge/linux-64 Cached nss 3.67 hb5efdd6_0 conda-forge/linux-64 Cached numpy 1.21.1 py39hdbf815f_0 conda-forge/linux-64 Cached olefile 0.46 pyh9f0ad1d_1 conda-forge/noarch Cached openjpeg 2.4.0 hb52868f_1 conda-forge/linux-64 Cached openssl 1.1.1k h7f98852_0 conda-forge/linux-64 Cached ossuuid 1.6.2 hf484d3e_1000 conda-forge/linux-64 Cached packaging 21.0 pyhd8ed1ab_0 conda-forge/noarch Cached pandas 1.3.1 py39hde0f152_0 conda-forge/linux-64 Cached pango 1.42.4 h80147aa_5 conda-forge/linux-64 Cached partd 1.2.0 pyhd8ed1ab_0 conda-forge/noarch Cached pcre 8.45 h9c3ff4c_0 conda-forge/linux-64 Cached pcre2 10.35 h032f7d1_2 conda-forge/linux-64 Cached perl 5.32.1 0_h7f98852_perl5 conda-forge/linux-64 Cached pillow 8.3.1 py39h5aabda8_0 pkgs/main/linux-64 Cached pip 21.2.1 pyhd8ed1ab_0 conda-forge/noarch Cached pixman 0.38.0 h516909a_1003 conda-forge/linux-64 Cached pkg-config 0.29.2 h516909a_1008 conda-forge/linux-64 Cached poppler 0.89.0 h2de54a5_5 conda-forge/linux-64 Cached poppler-data 0.4.10 0 conda-forge/noarch Cached postgresql 12.3 h6303168_3 conda-forge/linux-64 Cached proj 7.1.1 h966b41f_3 conda-forge/linux-64 Cached prov 2.0.0 pyhd3deb0d_0 conda-forge/noarch Cached psutil 5.8.0 py39h3811e60_1 conda-forge/linux-64 Cached pybtex 0.24.0 py39hf3d152e_0 conda-forge/linux-64 Cached pycparser 2.20 pyh9f0ad1d_2 conda-forge/noarch Cached pydot 1.4.2 py39hf3d152e_0 conda-forge/linux-64 Cached pyke 1.1.1 py39hf3d152e_1003 conda-forge/linux-64 Cached pyopenssl 20.0.1 pyhd8ed1ab_0 conda-forge/noarch Cached pyparsing 2.4.7 pyh9f0ad1d_0 conda-forge/noarch Cached pyqt 5.12.3 py39hf3d152e_7 conda-forge/linux-64 Cached pyqt-impl 5.12.3 py39h0fcd23e_7 conda-forge/linux-64 Cached pyqt5-sip 4.19.18 py39he80948d_7 conda-forge/linux-64 Cached pyqtchart 5.12 py39h0fcd23e_7 conda-forge/linux-64 Cached pyqtwebengine 5.12.1 py39h0fcd23e_7 conda-forge/linux-64 Cached pyshp 2.1.3 pyh44b312d_0 conda-forge/noarch Cached pysocks 1.7.1 py39hf3d152e_3 conda-forge/linux-64 Cached python 3.9.6 h49503c6_1_cpython conda-forge/linux-64 Cached python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge/noarch Cached python-stratify 0.2.post0 py39hce5d2b2_0 conda-forge/linux-64 Cached python-xxhash 2.0.2 py39h3811e60_0 conda-forge/linux-64 Cached python_abi 3.9 2_cp39 conda-forge/linux-64 Cached pytz 2021.1 pyhd8ed1ab_0 conda-forge/noarch Cached pyyaml 5.4.1 py39h3811e60_0 conda-forge/linux-64 Cached qt 5.12.9 h763d07f_1 conda-forge/linux-64 Cached r-askpass 1.1 r40hcfec24a_2 conda-forge/linux-64 Cached r-assertthat 0.2.1 r40hc72bb7e_2 conda-forge/noarch Cached r-backports 1.2.1 r40hcfec24a_0 conda-forge/linux-64 Cached r-base 4.0.2 he766273_1 conda-forge/linux-64 Cached r-brio 1.1.2 r40hcfec24a_0 conda-forge/linux-64 Cached r-callr 3.7.0 r40hc72bb7e_0 conda-forge/noarch Cached r-cli 3.0.1 r40hc72bb7e_0 conda-forge/noarch Cached r-codetools 0.2_18 r40hc72bb7e_0 conda-forge/noarch Cached r-crayon 1.4.1 r40hc72bb7e_0 conda-forge/noarch Cached r-curl 4.3.2 r40hcfec24a_0 conda-forge/linux-64 Cached r-cyclocomp 1.1.0 r40hc72bb7e_1004 conda-forge/noarch Cached r-desc 1.3.0 r40hc72bb7e_0 conda-forge/noarch Cached r-diffobj 0.3.4 r40hcfec24a_0 conda-forge/linux-64 Cached r-digest 0.6.27 r40h03ef668_0 conda-forge/linux-64 Cached r-docopt 0.7.1 r40hc72bb7e_0 conda-forge/noarch Cached r-ellipsis 0.3.2 r40hcfec24a_0 conda-forge/linux-64 Cached r-evaluate 0.14 r40hc72bb7e_2 conda-forge/noarch Cached r-fansi 0.5.0 r40hcfec24a_0 conda-forge/linux-64 Cached r-glue 1.4.2 r40hcfec24a_0 conda-forge/linux-64 Cached r-highr 0.9 r40hc72bb7e_0 conda-forge/noarch Cached r-httr 1.4.2 r40hc72bb7e_0 conda-forge/noarch Cached r-jsonlite 1.7.2 r40hcfec24a_0 conda-forge/linux-64 Cached r-knitr 1.33 r40hc72bb7e_0 conda-forge/noarch Cached r-lazyeval 0.2.2 r40hcfec24a_2 conda-forge/linux-64 Cached r-lifecycle 1.0.0 r40hc72bb7e_0 conda-forge/noarch Cached r-lintr 2.0.1 r40hc72bb7e_1 conda-forge/noarch Cached r-magrittr 2.0.1 r40hcfec24a_1 conda-forge/linux-64 Cached r-markdown 1.1 r40hcfec24a_1 conda-forge/linux-64 Cached r-mime 0.11 r40hcfec24a_0 conda-forge/linux-64 Cached r-openssl 1.4.4 r40he36bf35_0 conda-forge/linux-64 Cached r-pillar 1.6.1 r40hc72bb7e_0 conda-forge/noarch Cached r-pkgconfig 2.0.3 r40hc72bb7e_1 conda-forge/noarch Cached r-pkgload 1.2.1 r40h03ef668_0 conda-forge/linux-64 Cached r-praise 1.0.0 r40hc72bb7e_1004 conda-forge/noarch Cached r-processx 3.5.2 r40hcfec24a_0 conda-forge/linux-64 Cached r-ps 1.6.0 r40hcfec24a_0 conda-forge/linux-64 Cached r-purrr 0.3.4 r40hcfec24a_1 conda-forge/linux-64 Cached r-r.cache 0.15.0 r40hc72bb7e_0 conda-forge/noarch Cached r-r.methodss3 1.8.1 r40hc72bb7e_0 conda-forge/noarch Cached r-r.oo 1.24.0 r40hc72bb7e_0 conda-forge/noarch Cached r-r.utils 2.10.1 r40hc72bb7e_0 conda-forge/noarch Cached r-r6 2.5.0 r40hc72bb7e_0 conda-forge/noarch Cached r-rcpp 1.0.7 r40h03ef668_0 conda-forge/linux-64 Cached r-rematch2 2.1.2 r40hc72bb7e_1 conda-forge/noarch Cached r-remotes 2.4.0 r40hc72bb7e_0 conda-forge/noarch Cached r-rex 1.2.0 r40hc72bb7e_1 conda-forge/noarch Cached r-rlang 0.4.11 r40hcfec24a_0 conda-forge/linux-64 Cached r-rprojroot 2.0.2 r40hc72bb7e_0 conda-forge/noarch Cached r-rstudioapi 0.13 r40hc72bb7e_0 conda-forge/noarch Cached r-stringdist 0.9.6.3 r40hcfec24a_0 conda-forge/linux-64 Cached r-stringi 1.5.3 r40hca8494e_0 conda-forge/linux-64 Cached r-stringr 1.4.0 r40hc72bb7e_2 conda-forge/noarch Cached r-styler 1.5.1 r40hc72bb7e_0 conda-forge/noarch Cached r-sys 3.4 r40hcfec24a_0 conda-forge/linux-64 Cached r-testthat 3.0.4 r40h03ef668_0 conda-forge/linux-64 Cached r-tibble 3.1.3 r40hcfec24a_0 conda-forge/linux-64 Cached r-udunits2 0.13 r40hcfec24a_1004 conda-forge/linux-64 Cached r-utf8 1.2.2 r40hcfec24a_0 conda-forge/linux-64 Cached r-vctrs 0.3.8 r40hcfec24a_1 conda-forge/linux-64 Cached r-waldo 0.2.5 r40hc72bb7e_0 conda-forge/noarch Cached r-withr 2.4.2 r40hc72bb7e_0 conda-forge/noarch Cached r-xfun 0.24 r40h03ef668_0 conda-forge/linux-64 Cached r-xml2 1.3.2 r40h0357c0b_1 conda-forge/linux-64 Cached r-xmlparsedata 1.0.5 r40hc72bb7e_0 conda-forge/noarch Cached r-yaml 2.2.1 r40hcfec24a_1 conda-forge/linux-64 Cached rdflib 6.0.0 py39hf3d152e_0 conda-forge/linux-64 Cached readline 8.1 h46c0cb4_0 conda-forge/linux-64 Cached requests 2.26.0 pyhd8ed1ab_0 conda-forge/noarch Cached ruamel.yaml 0.17.10 py39h3811e60_0 conda-forge/linux-64 Cached ruamel.yaml.clib 0.2.2 py39h3811e60_2 conda-forge/linux-64 Cached scikit-learn 0.24.2 py39h4dfa638_0 conda-forge/linux-64 Cached scipy 1.5.3 py39hf3f25e7_0 conda-forge/linux-64 Cached sed 4.8 he412f7d_0 conda-forge/linux-64 Cached setuptools 52.0.0 py39h06a4308_0 pkgs/main/linux-64 Cached shapely 1.7.1 py39hfa2dc8b_1 conda-forge/linux-64 Cached six 1.16.0 pyh6c4a22f_0 conda-forge/noarch Cached sortedcontainers 2.4.0 pyhd8ed1ab_0 conda-forge/noarch Cached sparqlwrapper 1.8.5 py39hf3d152e_1005 conda-forge/linux-64 Cached sqlite 3.36.0 h9cd32fc_0 conda-forge/linux-64 Cached sysroot_linux-64 2.12 he073ed8_14 conda-forge/noarch Cached tblib 1.7.0 pyhd8ed1ab_0 conda-forge/noarch Cached tempest-remap 2.0.5 h1b20e2d_0 conda-forge/linux-64 Cached termcolor 1.1.0 py_2 conda-forge/noarch Cached threadpoolctl 2.2.0 pyh8a188c0_0 conda-forge/noarch Cached tiledb 2.1.6 h91fcb0e_1 conda-forge/linux-64 Cached tk 8.6.10 hed695b0_1 conda-forge/linux-64 Cached tktable 2.10 hb7b940f_3 conda-forge/linux-64 Cached toolz 0.11.1 py_0 conda-forge/noarch Cached tornado 6.1 py39h3811e60_1 conda-forge/linux-64 Cached typing_extensions 3.10.0.0 pyha770c72_0 conda-forge/noarch Cached tzcode 2021a h7f98852_2 conda-forge/linux-64 Cached tzdata 2021a he74cb21_1 conda-forge/noarch Cached udunits2 2.2.27.27 h975c496_1 conda-forge/linux-64 Cached urllib3 1.26.6 pyhd8ed1ab_0 conda-forge/noarch Cached webencodings 0.5.1 py_1 conda-forge/noarch Cached wheel 0.36.2 pyhd3deb0d_0 conda-forge/noarch Cached xerces-c 3.2.3 hfe33f54_1 conda-forge/linux-64 Cached xorg-imake 1.0.7 0 conda-forge/linux-64 Cached xorg-kbproto 1.0.7 h14c3975_1002 conda-forge/linux-64 Cached xorg-libice 1.0.10 h516909a_0 conda-forge/linux-64 Cached xorg-libsm 1.2.3 hd9c2040_1000 conda-forge/linux-64 Cached xorg-libx11 1.6.12 h516909a_0 conda-forge/linux-64 Cached xorg-libxaw 1.0.14 h7f98852_0 conda-forge/linux-64 Cached xorg-libxext 1.3.4 h516909a_0 conda-forge/linux-64 Cached xorg-libxmu 1.1.3 h516909a_0 conda-forge/linux-64 Cached xorg-libxpm 3.5.13 h516909a_0 conda-forge/linux-64 Cached xorg-libxrender 0.9.10 h516909a_1002 conda-forge/linux-64 Cached xorg-libxt 1.1.5 h516909a_1003 conda-forge/linux-64 Cached xorg-makedepend 1.0.6 he1b5a44_1 conda-forge/linux-64 Cached xorg-renderproto 0.11.1 h14c3975_1002 conda-forge/linux-64 Cached xorg-xextproto 7.3.0 h14c3975_1002 conda-forge/linux-64 Cached xorg-xproto 7.0.31 h14c3975_1007 conda-forge/linux-64 Cached xxhash 0.8.0 h7f98852_3 conda-forge/linux-64 Cached xz 5.2.5 h516909a_1 conda-forge/linux-64 Cached yamale 3.0.7 pyh6c4a22f_0 conda-forge/noarch Cached yaml 0.2.5 h516909a_0 conda-forge/linux-64 Cached zict 2.0.0 py_0 conda-forge/noarch Cached zlib 1.2.11 h516909a_1010 conda-forge/linux-64 Cached zstd 1.4.9 ha95c52a_0 conda-forge/linux-64 Cached Summary: Install: 338 packages Total download: 0 B ──────────────────────────────────────────────────────────────────────────────────────────────────────── Preparing transaction: done Verifying transaction: done Executing transaction: / / done # # To activate this environment, use # # $ conda activate esmvaltool # # To deactivate an active environment, use # # $ conda deactivate ```
conda creates the environment with these versions ``` $ conda list # packages in environment at /pf/b/b381141/conda/envs/esmvaltool: # # Name Version Build Channel _libgcc_mutex 0.1 conda_forge conda-forge _openmp_mutex 4.5 1_gnu conda-forge _r-mutex 1.0.1 anacondar_1 conda-forge affine 2.3.0 pypi_0 pypi antlr-python-runtime 4.7.2 py39hf3d152e_1002 conda-forge atk-1.0 2.36.0 h3371d22_4 conda-forge attrs 21.2.0 pyhd8ed1ab_0 conda-forge binutils 2.36.1 hdd6e379_1 conda-forge binutils_impl_linux-64 2.36.1 h193b22a_1 conda-forge binutils_linux-64 2.36 hf3e587d_33 conda-forge bokeh 2.3.3 py39hf3d152e_0 conda-forge boost-cpp 1.74.0 h9359b55_0 conda-forge brotlipy 0.7.0 py39h3811e60_1001 conda-forge bwidget 1.9.14 ha770c72_0 conda-forge bzip2 1.0.8 h7f98852_4 conda-forge c-ares 1.17.1 h7f98852_1 conda-forge c-compiler 1.1.1 h516909a_0 conda-forge ca-certificates 2021.5.30 ha878542_0 conda-forge cairo 1.16.0 h488836b_1006 conda-forge cartopy 0.18.0 py39h32a4312_7 conda-forge cdo 1.5.5 pypi_0 pypi cdsapi 0.5.1 pypi_0 pypi certifi 2021.5.30 py39hf3d152e_0 conda-forge cf-units 3.0.1 py39hce5d2b2_0 conda-forge cffi 1.14.6 py39he32792d_0 conda-forge cfitsio 3.470 h2e3daa1_7 conda-forge cftime 1.5.0 py39hce5d2b2_0 conda-forge chardet 4.0.0 py39hf3d152e_1 conda-forge charset-normalizer 2.0.0 pyhd8ed1ab_0 conda-forge click 7.1.2 pyh9f0ad1d_0 conda-forge click-plugins 1.1.1 py_0 conda-forge cligj 0.7.2 pyhd8ed1ab_0 conda-forge cloudpickle 1.6.0 py_0 conda-forge cmocean 2.0 pypi_0 pypi compilers 1.1.1 0 conda-forge cryptography 3.4.7 py39hbca0aa6_0 conda-forge curl 7.76.1 h979ede3_1 conda-forge cxx-compiler 1.1.1 hc9558a2_0 conda-forge cycler 0.10.0 py_2 conda-forge cython 0.29.24 py39he80948d_0 conda-forge cytoolz 0.11.0 py39h3811e60_3 conda-forge dask 2021.7.1 pyhd8ed1ab_0 conda-forge dask-core 2021.7.1 pyhd8ed1ab_0 conda-forge dbus 1.13.6 h48d8840_2 conda-forge decorator 5.0.9 pyhd8ed1ab_0 conda-forge distributed 2021.7.1 py39hf3d152e_0 conda-forge eccodes 2.19.1 hea64003_0 conda-forge ecmwf-api-client 1.6.1 pypi_0 pypi eofs 1.4.0 pypi_0 pypi esmf 8.0.1 mpi_mpich_h61b2105_102 conda-forge esmpy 8.0.1 mpi_mpich_py39h432445a_102 conda-forge esmvalcore 2.3.0 pyhd8ed1ab_0 conda-forge esmvaltool 2.2.0 dev_0 expat 2.4.1 h9c3ff4c_0 conda-forge fftw 3.3.9 h27cfd23_1 fiona 1.8.18 py39h3573629_0 conda-forge fire 0.4.0 pyh44b312d_0 conda-forge font-ttf-dejavu-sans-mono 2.37 hab24e00_0 conda-forge font-ttf-inconsolata 3.000 h77eed37_0 conda-forge font-ttf-source-code-pro 2.038 h77eed37_0 conda-forge font-ttf-ubuntu 0.83 hab24e00_0 conda-forge fontconfig 2.13.1 hba837de_1005 conda-forge fonts-conda-ecosystem 1 0 conda-forge fonts-conda-forge 1 0 conda-forge fortran-compiler 1.1.1 he991be0_0 conda-forge freetype 2.10.4 h0708190_1 conda-forge freexl 1.0.6 h7f98852_0 conda-forge fribidi 1.0.10 h36c2ea0_0 conda-forge fsspec 2021.7.0 pyhd8ed1ab_0 conda-forge gcc_impl_linux-64 7.5.0 hda68d29_13 conda-forge gcc_linux-64 7.5.0 h47867f9_33 conda-forge gdal 3.1.4 py39h3f36f43_1 conda-forge gdk-pixbuf 2.42.6 h04a7f16_0 conda-forge geos 3.8.1 he1b5a44_0 conda-forge geotiff 1.6.0 h5d11630_3 conda-forge gettext 0.19.8.1 h0b5b191_1005 conda-forge gfortran_impl_linux-64 7.5.0 h56cb351_19 conda-forge gfortran_linux-64 7.5.0 h78c8a43_33 conda-forge ghostscript 9.54.0 h9c3ff4c_1 conda-forge giflib 5.2.1 h36c2ea0_2 conda-forge glib 2.68.3 h9c3ff4c_0 conda-forge glib-tools 2.68.3 h9c3ff4c_0 conda-forge graphite2 1.3.13 h58526e2_1001 conda-forge graphviz 2.47.0 he056042_1 conda-forge gsl 2.6 he838d99_2 conda-forge gst-plugins-base 1.14.5 h0935bb2_2 conda-forge gstreamer 1.18.4 h76c114f_2 conda-forge gtk2 2.24.33 hab0c2f8_0 conda-forge gts 0.7.6 h64030ff_2 conda-forge gxx_impl_linux-64 7.5.0 h64c220c_13 conda-forge gxx_linux-64 7.5.0 h555fc39_33 conda-forge harfbuzz 2.7.2 ha5b49bf_1 conda-forge hdf4 4.2.15 h10796ff_3 conda-forge hdf5 1.10.6 mpi_mpich_hc41e3f9_1011 conda-forge hdfeos2 2.20 h64bfcee_1000 conda-forge hdfeos5 5.1.16 hb4ce793_7 conda-forge heapdict 1.0.1 py_0 conda-forge html5lib 1.1 pyh9f0ad1d_0 conda-forge icu 67.1 he1b5a44_0 conda-forge idna 3.1 pyhd3deb0d_0 conda-forge imageio 2.9.0 pypi_0 pypi imagemagick 7.0.11_12 pl5320h0cb4662_0 conda-forge iris 3.0.4 py39hf3d152e_0 conda-forge isodate 0.6.0 py_1 conda-forge jasper 1.900.1 h07fcdf6_1006 conda-forge jbig 2.1 h7f98852_2003 conda-forge jinja2 3.0.1 pyhd8ed1ab_0 conda-forge joblib 1.0.1 pyhd8ed1ab_0 conda-forge jpeg 9d h36c2ea0_0 conda-forge json-c 0.13.1 hbfbb72e_1002 conda-forge kealib 1.4.14 hcc255d8_2 conda-forge keepalive 0.5 py39hf3d152e_5 conda-forge kernel-headers_linux-64 2.6.32 he073ed8_14 conda-forge kiwisolver 1.3.1 py39h1a9c180_1 conda-forge krb5 1.17.2 h926e7f8_0 conda-forge latexcodec 2.0.1 pyh9f0ad1d_0 conda-forge lcms2 2.12 hddcbb42_0 conda-forge ld_impl_linux-64 2.36.1 hea4e1c9_1 conda-forge libaec 1.0.5 h9c3ff4c_0 conda-forge libblas 3.9.0 8_openblas conda-forge libcblas 3.9.0 8_openblas conda-forge libclang 11.1.0 default_ha53f305_1 conda-forge libcurl 7.76.1 hc4aaa36_1 conda-forge libdap4 3.20.6 hd7c4107_2 conda-forge libedit 3.1.20191231 he28a2e2_2 conda-forge libev 4.33 h516909a_1 conda-forge libevent 2.1.10 hcdb4288_3 conda-forge libffi 3.3 h58526e2_2 conda-forge libgcc-ng 11.1.0 hc902ee8_2 conda-forge libgd 2.3.0 h6e6070c_0 conda-forge libgdal 3.1.4 h50e41a3_1 conda-forge libgfortran-ng 7.5.0 h14aa051_19 conda-forge libgfortran4 7.5.0 h14aa051_19 conda-forge libglib 2.68.3 h3e27bee_0 conda-forge libgomp 11.1.0 hc902ee8_2 conda-forge libiconv 1.16 h516909a_0 conda-forge libkml 1.3.0 h238a007_1014 conda-forge liblapack 3.9.0 8_openblas conda-forge libllvm11 11.1.0 hf817b99_2 conda-forge libnetcdf 4.7.4 mpi_mpich_hdef422e_7 conda-forge libnghttp2 1.43.0 h812cca2_0 conda-forge libopenblas 0.3.12 pthreads_hb3c22a3_1 conda-forge libpng 1.6.37 h21135ba_2 conda-forge libpq 12.3 h255efa7_3 conda-forge librsvg 2.50.3 hfa39831_1 conda-forge librttopo 1.1.0 hb271727_4 conda-forge libspatialite 5.0.1 h6ec7341_0 conda-forge libssh2 1.9.0 ha56f1ee_6 conda-forge libstdcxx-ng 11.1.0 h56837e0_2 conda-forge libtiff 4.2.0 hbd63e13_2 conda-forge libtool 2.4.6 h58526e2_1007 conda-forge libuuid 2.32.1 h7f98852_1000 conda-forge libwebp 1.2.0 h3452ae3_0 conda-forge libwebp-base 1.2.0 h7f98852_2 conda-forge libxcb 1.13 h7f98852_1003 conda-forge libxkbcommon 1.0.3 he3ba5ed_0 conda-forge libxml2 2.9.10 h68273f3_2 conda-forge libxslt 1.1.33 hf705e74_1 conda-forge lime 0.2.0.1 pypi_0 pypi locket 0.2.0 py_2 conda-forge lxml 4.6.3 py39h107f48f_0 conda-forge lz4-c 1.9.3 h9c3ff4c_0 conda-forge make 4.3 hd18ef5c_1 conda-forge markupsafe 2.0.1 py39h3811e60_0 conda-forge matplotlib 3.3.4 py39hf3d152e_0 conda-forge matplotlib-base 3.3.4 py39h2fa2bec_0 conda-forge mpi 1.0 mpich conda-forge mpi4py 3.0.3 py39h6438238_4 conda-forge mpich 3.3.2 h846660c_5 conda-forge msgpack-python 1.0.2 py39h1a9c180_1 conda-forge munch 2.5.0 py_0 conda-forge mysql-common 8.0.25 ha770c72_0 conda-forge mysql-libs 8.0.25 h935591d_0 conda-forge natsort 7.1.1 pypi_0 pypi nc-time-axis 1.3.0 pypi_0 pypi ncl 6.6.2 h087f628_23 conda-forge nco 4.9.8 he39ba57_1 conda-forge ncurses 6.2 h58526e2_4 conda-forge netcdf-fortran 4.5.3 mpi_mpich_h3923e1a_1 conda-forge netcdf4 1.5.6 nompi_py39h36800e2_102 conda-forge networkx 2.5 py_0 conda-forge nspr 4.30 h9c3ff4c_0 conda-forge nss 3.67 hb5efdd6_0 conda-forge numpy 1.21.1 py39hdbf815f_0 conda-forge olefile 0.46 pyh9f0ad1d_1 conda-forge openjpeg 2.4.0 hb52868f_1 conda-forge openssl 1.1.1k h7f98852_0 conda-forge ossuuid 1.6.2 hf484d3e_1000 conda-forge packaging 21.0 pyhd8ed1ab_0 conda-forge pandas 1.3.1 py39hde0f152_0 conda-forge pango 1.42.4 h69149e4_5 conda-forge partd 1.2.0 pyhd8ed1ab_0 conda-forge pcre 8.45 h9c3ff4c_0 conda-forge pcre2 10.35 h032f7d1_2 conda-forge perl 5.32.1 0_h7f98852_perl5 conda-forge pillow 8.2.0 py39hf95b381_1 conda-forge pip 21.2.1 pyhd8ed1ab_0 conda-forge pixman 0.38.0 h516909a_1003 conda-forge pkg-config 0.29.2 h36c2ea0_1008 conda-forge poppler 0.89.0 h2de54a5_5 conda-forge poppler-data 0.4.10 0 conda-forge postgresql 12.3 hc2f5b80_3 conda-forge proj 7.1.1 h966b41f_3 conda-forge prov 2.0.0 pyhd3deb0d_0 conda-forge psutil 5.8.0 py39h3811e60_1 conda-forge pthread-stubs 0.4 h36c2ea0_1001 conda-forge pybtex 0.24.0 py39hf3d152e_0 conda-forge pycparser 2.20 pyh9f0ad1d_2 conda-forge pydot 1.4.2 py39hf3d152e_0 conda-forge pyke 1.1.1 pyhd8ed1ab_1004 conda-forge pyopenssl 20.0.1 pyhd8ed1ab_0 conda-forge pyparsing 2.4.7 pyh9f0ad1d_0 conda-forge pyproj 3.1.0 pypi_0 pypi pyqt 5.12.3 py39hf3d152e_7 conda-forge pyqt-impl 5.12.3 py39h0fcd23e_7 conda-forge pyqt5-sip 4.19.18 py39he80948d_7 conda-forge pyqtchart 5.12 py39h0fcd23e_7 conda-forge pyqtwebengine 5.12.1 py39h0fcd23e_7 conda-forge pyshp 2.1.3 pyh44b312d_0 conda-forge pysocks 1.7.1 py39hf3d152e_3 conda-forge python 3.9.6 h49503c6_1_cpython conda-forge python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge python-stratify 0.2.post0 py39hce5d2b2_0 conda-forge python-xxhash 2.0.2 py39h3811e60_0 conda-forge python_abi 3.9 2_cp39 conda-forge pytz 2021.1 pyhd8ed1ab_0 conda-forge pywavelets 1.1.1 pypi_0 pypi pyyaml 5.4.1 py39h3811e60_0 conda-forge qt 5.12.9 h763d07f_1 conda-forge r-askpass 1.1 r40hcfec24a_2 conda-forge r-assertthat 0.2.1 r40hc72bb7e_2 conda-forge r-backports 1.2.1 r40hcfec24a_0 conda-forge r-base 4.0.2 he766273_1 conda-forge r-brio 1.1.2 r40hcfec24a_0 conda-forge r-callr 3.7.0 r40hc72bb7e_0 conda-forge r-cli 3.0.1 r40hc72bb7e_0 conda-forge r-codetools 0.2_18 r40hc72bb7e_0 conda-forge r-crayon 1.4.1 r40hc72bb7e_0 conda-forge r-curl 4.3.2 r40hcfec24a_0 conda-forge r-cyclocomp 1.1.0 r40hc72bb7e_1004 conda-forge r-desc 1.3.0 r40hc72bb7e_0 conda-forge r-diffobj 0.3.4 r40hcfec24a_0 conda-forge r-digest 0.6.27 r40h03ef668_0 conda-forge r-docopt 0.7.1 r40hc72bb7e_0 conda-forge r-ellipsis 0.3.2 r40hcfec24a_0 conda-forge r-evaluate 0.14 r40hc72bb7e_2 conda-forge r-fansi 0.5.0 r40hcfec24a_0 conda-forge r-glue 1.4.2 r40hcfec24a_0 conda-forge r-highr 0.9 r40hc72bb7e_0 conda-forge r-httr 1.4.2 r40hc72bb7e_0 conda-forge r-jsonlite 1.7.2 r40hcfec24a_0 conda-forge r-knitr 1.33 r40hc72bb7e_0 conda-forge r-lazyeval 0.2.2 r40hcfec24a_2 conda-forge r-lifecycle 1.0.0 r40hc72bb7e_0 conda-forge r-lintr 2.0.1 r40hc72bb7e_1 conda-forge r-magrittr 2.0.1 r40hcfec24a_1 conda-forge r-markdown 1.1 r40hcfec24a_1 conda-forge r-mime 0.11 r40hcfec24a_0 conda-forge r-openssl 1.4.4 r40he36bf35_0 conda-forge r-pillar 1.6.1 r40hc72bb7e_0 conda-forge r-pkgconfig 2.0.3 r40hc72bb7e_1 conda-forge r-pkgload 1.2.1 r40h03ef668_0 conda-forge r-praise 1.0.0 r40hc72bb7e_1004 conda-forge r-processx 3.5.2 r40hcfec24a_0 conda-forge r-ps 1.6.0 r40hcfec24a_0 conda-forge r-purrr 0.3.4 r40hcfec24a_1 conda-forge r-r.cache 0.15.0 r40hc72bb7e_0 conda-forge r-r.methodss3 1.8.1 r40hc72bb7e_0 conda-forge r-r.oo 1.24.0 r40hc72bb7e_0 conda-forge r-r.utils 2.10.1 r40hc72bb7e_0 conda-forge r-r6 2.5.0 r40hc72bb7e_0 conda-forge r-rcpp 1.0.7 r40h03ef668_0 conda-forge r-rematch2 2.1.2 r40hc72bb7e_1 conda-forge r-remotes 2.4.0 r40hc72bb7e_0 conda-forge r-rex 1.2.0 r40hc72bb7e_1 conda-forge r-rlang 0.4.11 r40hcfec24a_0 conda-forge r-rprojroot 2.0.2 r40hc72bb7e_0 conda-forge r-rstudioapi 0.13 r40hc72bb7e_0 conda-forge r-stringdist 0.9.6.3 r40hcfec24a_0 conda-forge r-stringi 1.5.3 r40hca8494e_0 conda-forge r-stringr 1.4.0 r40hc72bb7e_2 conda-forge r-styler 1.5.1 r40hc72bb7e_0 conda-forge r-sys 3.4 r40hcfec24a_0 conda-forge r-testthat 3.0.4 r40h03ef668_0 conda-forge r-tibble 3.1.3 r40hcfec24a_0 conda-forge r-udunits2 0.13 r40hcfec24a_1004 conda-forge r-utf8 1.2.2 r40hcfec24a_0 conda-forge r-vctrs 0.3.8 r40hcfec24a_1 conda-forge r-waldo 0.2.5 r40hc72bb7e_0 conda-forge r-withr 2.4.2 r40hc72bb7e_0 conda-forge r-xfun 0.24 r40h03ef668_0 conda-forge r-xml2 1.3.2 r40h03ef668_1 conda-forge r-xmlparsedata 1.0.5 r40hc72bb7e_0 conda-forge r-yaml 2.2.1 r40hcfec24a_1 conda-forge rasterio 1.2.6 pypi_0 pypi rdflib 6.0.0 py39hf3d152e_0 conda-forge readline 8.1 h46c0cb4_0 conda-forge requests 2.26.0 pyhd8ed1ab_0 conda-forge ruamel.yaml 0.17.10 py39h3811e60_0 conda-forge ruamel.yaml.clib 0.2.2 py39h3811e60_2 conda-forge scikit-image 0.18.2 pypi_0 pypi scikit-learn 0.24.2 py39h4dfa638_0 conda-forge scipy 1.5.3 py39hf3f25e7_0 conda-forge seaborn 0.11.1 pypi_0 pypi seawater 3.3.4 pypi_0 pypi sed 4.8 he412f7d_0 conda-forge setuptools 49.6.0 py39hf3d152e_3 conda-forge shapely 1.7.1 py39hcbe974e_1 conda-forge six 1.16.0 pyh6c4a22f_0 conda-forge snuggs 1.4.7 pypi_0 pypi sortedcontainers 2.4.0 pyhd8ed1ab_0 conda-forge sparqlwrapper 1.8.5 py39hf3d152e_1005 conda-forge sqlite 3.36.0 h9cd32fc_0 conda-forge sysroot_linux-64 2.12 he073ed8_14 conda-forge tblib 1.7.0 pyhd8ed1ab_0 conda-forge tempest-remap 2.0.5 h1b20e2d_0 conda-forge termcolor 1.1.0 py_2 conda-forge threadpoolctl 2.2.0 pyh8a188c0_0 conda-forge tifffile 2021.7.2 pypi_0 pypi tiledb 2.1.6 h91fcb0e_1 conda-forge tk 8.6.10 h21135ba_1 conda-forge tktable 2.10 hb7b940f_3 conda-forge toolz 0.11.1 py_0 conda-forge tornado 6.1 py39h3811e60_1 conda-forge tqdm 4.61.2 pypi_0 pypi typing_extensions 3.10.0.0 pyha770c72_0 conda-forge tzcode 2021a h7f98852_2 conda-forge tzdata 2021a he74cb21_1 conda-forge udunits2 2.2.27.27 h975c496_1 conda-forge urllib3 1.26.6 pyhd8ed1ab_0 conda-forge webencodings 0.5.1 py_1 conda-forge wheel 0.36.2 pyhd3deb0d_0 conda-forge xarray 0.19.0 pypi_0 pypi xerces-c 3.2.3 hfe33f54_1 conda-forge xesmf 0.3.0 pypi_0 pypi xgboost 1.4.2 pypi_0 pypi xlsxwriter 1.4.4 pypi_0 pypi xorg-imake 1.0.7 0 conda-forge xorg-kbproto 1.0.7 h7f98852_1002 conda-forge xorg-libice 1.0.10 h7f98852_0 conda-forge xorg-libsm 1.2.3 hd9c2040_1000 conda-forge xorg-libx11 1.6.12 h36c2ea0_0 conda-forge xorg-libxau 1.0.9 h7f98852_0 conda-forge xorg-libxaw 1.0.14 h7f98852_0 conda-forge xorg-libxdmcp 1.1.3 h7f98852_0 conda-forge xorg-libxext 1.3.4 h516909a_0 conda-forge xorg-libxmu 1.1.3 h516909a_0 conda-forge xorg-libxpm 3.5.13 h516909a_0 conda-forge xorg-libxrender 0.9.10 h516909a_1002 conda-forge xorg-libxt 1.1.5 h516909a_1003 conda-forge xorg-makedepend 1.0.6 he1b5a44_1 conda-forge xorg-renderproto 0.11.1 h7f98852_1002 conda-forge xorg-xextproto 7.3.0 h7f98852_1002 conda-forge xorg-xproto 7.0.31 h7f98852_1007 conda-forge xxhash 0.8.0 h7f98852_3 conda-forge xz 5.2.5 h516909a_1 conda-forge yamale 3.0.7 pyh6c4a22f_0 conda-forge yaml 0.2.5 h516909a_0 conda-forge zict 2.0.0 py_0 conda-forge zlib 1.2.11 h516909a_1010 conda-forge zstd 1.4.9 ha95c52a_0 conda-forge ```
bouweandela commented 3 years ago

It looks like all required packages are available on conda-forge, but we would need some way to tell mamba to not install anything from the defaults channel.

valeriupredoi commented 3 years ago

right on Bouwe, but @zklaus reported the same issue with what I believe to be a non-mamba installation (and it might be something Mistral-specific), can you maybe try the same install process but with conda (not rely on an older installation and say that works fine)

valeriupredoi commented 3 years ago

It looks like all required packages are available on conda-forge, but we would need some way to tell mamba to not install anything from the defaults channel.

we should be able to do that by removing the defaults channel from the condarc or mambarc (if there's one?) conf file

bouweandela commented 3 years ago

can you maybe try the same install process but with conda (not rely on an older installation and say that works fine)

That is exactly what I did above. It is a development installation, so from the environment.yml. suprisingly conda seems to pick up the older esmvalcore (v2.3.0 instead of v2.3.1). Maybe that needs to be pinned?

valeriupredoi commented 3 years ago

ah fair do's, OK - I'll test too, can you pls post the exact commands you used to be able to reproduce the behavior? About 2.3.0 - there is absolutely no reason why conda should pick that up unless you using Python 3.6 - I checked that with the GA tests https://github.com/ESMValGroup/ESMValTool/actions/runs/1073166287 - we'll pin anyway, pinning is always a good idea even if only for restricting conda going on a long walk

bouweandela commented 3 years ago

ah fair do's, OK - I'll test too, can you pls post the exact commands you used to be able to reproduce the behavior?

Clone repo:

git clone https://github.com/esmvalgroup/esmvaltool
cd esmvaltool

Mamba install:

mamba env create -n mamba -f environment.yml
conda activate mamba
pip install -e .

Conda install:

conda create -n conda -c conda-forge python
conda env update -n conda -f environment.yml
conda activate conda
pip install -e .
zklaus commented 3 years ago

Three comments: First, the glibc thing really is a bit mistral specific in that it has an ancient version of OS and with it glibc, see this DKRZ blog post. Second, perhaps you should update your mamba, see this blog post, particularly the comment on channel priorities. Mamba 0.7 really is maybe a bit old. Third, for mamba you use mamba env create, but for conda conda create + conda env update. Is there a reason for this? Does it make any difference if you also use mamba create + mamba env update?

These things notwithstanding, do we want to take everything only from conda-forge or allow for mixing?

valeriupredoi commented 3 years ago

hey @bouweandela I tried exactly your workflow (on my laptop, I'll try on JASMIN too but I don't expect any change) and all goes fone for me:

(mamba) valeriu@valeriu-PORTEGE-Z30-C:~/ESMValCore$ conda list pillow
# packages in environment at /home/valeriu/miniconda3/envs/mamba:
#
# Name                    Version                   Build  Channel
pillow                    8.2.0            py39hf95b381_1    conda-forge
(mamba) valeriu@valeriu-PORTEGE-Z30-C:~/ESMValCore$ mamba --version
mamba 0.15.0
conda 4.10.3

and esmvaltool run works fine. Can you please update your mamba and try again? As @zklaus mentioned, your mamba's old, buddy :grin:

valeriupredoi commented 3 years ago

OK I visited my beloved Jasmin and there I had a mamba=0.13 so I used it instead of upgrading it, and lo and behold pillow got installed from defaults, bit even so, the installation and run of esmvaltool went fine (I ran examples/recipe_python.yml no problemo); then I updated mamba to 0.15.2 and repeated the process, this time around just fftw gets installed from defaults/main, pillow is nice and conda-forgy (8.2.0, same build as on my laptop) and again, recipe ran fine. So that's a defo Mistral issue, it'd be worth updating your mamba to 0.15+ @bouweandela and test again, my bets are you'll run in the same glibc issue even with pillow from conda-forge, and that will give mamba a clean sheet and the Mistral folk need to fix that issue :+1:

egalytska commented 3 years ago

Dear all, Unfortunatelly I ran into the same issue in Mistral. Trying to install ESMValTool (from scratch) with conda would give me weird message "/lib64/libc.so.6: version `GLIBC_2.15' not found (required by /.../python)". But mamba helped. Below I post in details what I encountered.

(base) b380971@mlogin100% conda --version
conda 4.10.3
(base) b380971@mlogin100% python --version
Python 3.8.8

To install ESMValTool I follow instructions from here.

base) b380971@mlogin100% git clone https://github.com/ESMValGroup/ESMValTool
(base) b380971@mlogin100% cd ESMValTool
(base) b380971@mlogin100% conda create --name esmvaltool 'python=3.9'
(base) b380971@mlogin100% conda env update --name esmvaltool --file environment.yml

After some good 50 mins the environment was created.

base) b380971@mlogin100% conda activate esmvaltool
(esmvaltool) b380971@mlogin100% pip install --editable '.[develop]'
/work/bd0854/b380971/anaconda3/envs/esmvaltool/bin/python: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by /work/bd0854/b380971/anaconda3/envs/esmvaltool/bin/python)
/work/bd0854/b380971/anaconda3/envs/esmvaltool/bin/python: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /work/bd0854/b380971/anaconda3/envs/esmvaltool/bin/python)
/work/bd0854/b380971/anaconda3/envs/esmvaltool/bin/python: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by /work/bd0854/b380971/anaconda3/envs/esmvaltool/bin/python)

!Note: The same error message I got when I was trying to install Julia for EsmValTool.

So I tired to use mamba.

(base) b380971@mlogin100% conda install mamba -n base -c conda-forge Btw, while solving environments I am getting quite often the following message: Solving environment: failed with initial frozen solve. Retrying with flexible solve.

(base) b380971@mlogin100% mamba --version
mamba 0.7.3
conda 4.10.3

0_0 I thought that apriori one of the recent versions of mamba would be installed. I did not update mamba because any conda install- or update- actions take for me for ever. So the following I did with mamba:

(base) b380971@mlogin100% mamba env create -n esmvaltool2 -f environment.yml
(base) b380971@mlogin100% conda activate esmvaltool2
(esmvaltool2) b380971@mlogin100% pip install -e .

And finally after couple days of suffer I saw "....Successfully installed ESMValTool". Double check (esmvaltool2) b380971@mlogin100% esmvaltool --help Printed a help message. ESMValCore was also successfully installed.

Thanks to @schlunma who pointed to this issue and @valeriupredoi who introduced mamba. Does it mean that from now on we won't be able to install ESMValTool on Mistral with conda anymore?

valeriupredoi commented 3 years ago

@egalytska cheers for the heads up!

Btw, while solving environments I am getting quite often the following message: Solving environment: failed with initial frozen solve. Retrying with flexible solve.

no problem there, conda tries different strategies to solve the environment (all slow, mind you) - the first one is a more restrictive and most of the times fails, then it tries another one that's a bit more inclusive, and that usually leads to the env being solved

About mamba being old, you can try installing it with conda install -c conda-forge mamba==0.15 - that should work fine

Thanks for reporting this, it is now clear that the issue is with the library not being correctly installed on Minstral, this needs to be fixed upstream by the site admins, maybe @schlunma and/or @remi-kazeroni could push this a bit and see if the post that @zklaus linked in https://github.com/ESMValGroup/ESMValCore/issues/1227#issuecomment-888962499 can become a ticket or something :beer:

zklaus commented 3 years ago

Well, GLIBC is so fundamental, that updating it means moving to the next generation of the operating system. This will simply not happen on mistral, which has been installed in 2015 and will be replaced by the new BullSequana based system, which in turn is supposed to become available mid-2021, i.e. now(ish). See the press release.

However, conda-forge is, for now, commited to CentOS6 as a base (see the last announcement of 2020). Unfortunately, the sudden and largely unexpected discontinuation of CentOS has create a lot of uncertainty around that, and I imagine also for DKRZ brought up the question on what to base the next HPC.

Bottom line: If we restrict ourselves to conda-forge, we'll be fine for now, but there simply is a bit of uncertainty on where things are going for the next couple of months.

remi-kazeroni commented 3 years ago

Thanks for reporting this, it is now clear that the issue is with the library not being correctly installed on Minstral, this needs to be fixed upstream by the site admins, maybe @schlunma and/or @remi-kazeroni could push this a bit and see if the post that @zklaus linked in #1227 (comment) can become a ticket or something 🍺

We have already encountered that issue with different software used in our group on Mistral. As @zklaus pointed out, there is no chance to get such libraries updated a few months before Mistral will be decommisioned (see schedule). We have tried to ask unsuccessfully in the past.

Thanks to @schlunma who pointed to this issue and @valeriupredoi who introduced mamba. Does it mean that from now on we won't be able to install ESMValTool on Mistral with conda anymore?

I have also run into the issue described by @egalytska when installing the latest version of the ESMValTool. The only way I found to solve the environment with conda was to create an environment based on the Core environment.yml file and update this environment with the Tool environment.yml:

cd ESMValCore
conda env create -f environment.yml -n esmvaltool
cd ../ESMValTool
conda env update -f environment.yml -n esmvaltool

Is that advisable @valeriupredoi? The whole process took about 10 minutes and the ESMValTool seems to run fine for me.

valeriupredoi commented 3 years ago

Is that advisable @valeriupredoi?

perfectly fine, in fact encouraged, since updating a base env takes much shorter than creating the full blown env from scratch :+1:

bouweandela commented 3 years ago

Is that advisable @valeriupredoi? The whole process took about 10 minutes and the ESMValTool seems to run fine for me.

@remi-kazeroni @valeriupredoi This may result in problems with solving the environment. At the moment, the recommended installation procedure is to first create an environment with just Python in it and then update that with the environment.yml file, see https://docs.esmvaltool.org/en/latest/quickstart/installation.html#install-from-source. That may change of course, as we would like switch to recommending mamba instead of conda, provided that it works.

These things notwithstanding, do we want to take everything only from conda-forge or allow for mixing?

@zklaus Everything from conda forge would be best, because mixing may lead to problems. Also, some of us may need to buy an anaconda commercial subscription if we use packages from anaconda.

bouweandela commented 3 years ago

First, the glibc thing really is a bit mistral specific in that it has an ancient version of OS and with it glibc, see this DKRZ blog post.

The point is that packages installed from conda should not try to use system libraries, but the files that are shipped with the conda compilers. However, we are installing the compilers from conda forge, so if a package then comes from another channel, it will not have been compiled against these libraries and fall back on system libraries.

For me, the problem with the glibc library on mistral does not happen on the login node, where it is available, but the compute nodes. Anyway, will try again with an updated mamba when I have time.

valeriupredoi commented 3 years ago

@remi-kazeroni @valeriupredoi This may result in problems with solving the environment. At the moment, the recommended installation procedure is to first create an environment with just Python in it and then update that with the environment.yml file

not when you want to install ESMValCore locally with pip in development mode; the alternative is to install Core as a dependency of Tool (from conda-forge) at Tool install point then go to your esmvalcore dir and run a pip install -e .[develop] - that will supersede the conda package install from site-packages but this is a dirty installation procedure and may result in mixed paths for libraries. I thought Remi wanted to have both Core and Tool installed in dev mode, in which case creating an env for Core, installing Core locally in it then updating that env for Tool and installing Tool in it is perfectly fine :+1:

valeriupredoi commented 3 years ago

@remi-kazeroni @valeriupredoi This may result in problems with solving the environment. At the moment, the recommended installation procedure is to first create an environment with just Python in it and then update that with the environment.yml file

not when you want to install ESMValCore locally with pip in development mode; the alternative is to install Core as a dependency of Tool (from conda-forge) at Tool install point then go to your esmvalcore dir and run a pip install -e .[develop] - that will supersede the conda package install from site-packages but this is a dirty installation procedure and may result in mixed paths for libraries. I thought Remi wanted to have both Core and Tool installed in dev mode, in which case creating an env for Core, installing Core locally in it then updating that env for Tool and installing Tool in it is perfectly fine +1

also note that I experienced issues with mamba doing this (create Core env + install Core + update env for Tool + install Tool); but conda has no issues doing that. In fact many CI tests use conda update as a main call, rarely they conda create any bulky environments

bouweandela commented 3 years ago

I thought Remi wanted to have both Core and Tool installed in dev mode, in which case creating an env for Core, installing Core locally in it then updating that env for Tool and installing Tool in it is perfectly fine

Except when the installing core creates an environment that conda is unable to update for the tool installation, as has happened so often in the past with conda. If it works it's fine, but it's not a procedure I would recommend, because chances of ending up with an environment that cannot be solved are pretty high.

valeriupredoi commented 3 years ago

I thought Remi wanted to have both Core and Tool installed in dev mode, in which case creating an env for Core, installing Core locally in it then updating that env for Tool and installing Tool in it is perfectly fine

Except when the installing core creates an environment that conda is unable to update for the tool installation, as has happened so often in the past with conda. If it works it's fine, but it's not a procedure I would recommend, because chances of ending up with an environment that cannot be solved are pretty high.

indeed, this was endemic in the past, but more recently all is good with this eg see Remi's attempt too

remi-kazeroni commented 3 years ago

I thought Remi wanted to have both Core and Tool installed in dev mode, in which case creating an env for Core, installing Core locally in it then updating that env for Tool and installing Tool in it is perfectly fine 👍

Yes this is exactly what I did: installing the Tool and then the Core in dev mode once the conda environment was solved (created from the Core and updated with the Tool).

valeriupredoi commented 3 years ago

For me, the problem with the glibc library on mistral does not happen on the login node, where it is available, but the compute nodes. Anyway, will try again with an updated mamba when I have time.

Sounds good, Bouwe, I bet you my boots it'll be okay. Here's the question though - I thought the base Python in any conda env (including base) needs the system GLIBC no? As @zklaus mentions, newer conda's struggle on CentOS's (see https://github.com/conda/conda/issues/10657 ) and 1. the system GLIBC gets too old and is not recommended to upgrade it and 2. Anaconda does supply a GLIBC package but that seems to be older than Joe Biden https://anaconda.org/rmg/glibc - anyway it looks like setting conda env variables may allow overriding system libs https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-virtual.html

remi-kazeroni commented 3 years ago

@zklaus Everything from conda forge would be best, because mixing may lead to problems. Also, some of us may need to buy an anaconda commercial subscription if we use packages from anaconda.

I also wanted to bring that up. It may need a separate issue but the link above says:

How do you define commercial usage?

We clarified our definition of commercial usage in our Terms of Service in an update on Sept. 30, 2020. The new language states that use by individual hobbyists, students, universities, non-profit organizations, or businesses with less than 200 employees is allowed, and all other usage is considered commercial and thus requires a business relationship with Anaconda.

How do I know if I’m not in compliance?

You’re not in compliance with our Terms of Service if you are using Anaconda’s repositories in a for-profit or government organization with over 200 employees outside of a business relationship with Anaconda. You are also not in compliance if you are using mirroring software to create copies of the Anaconda repositories without a license.

Is this (going to be) a problem for us? One viable alternative could be miniforge. The central esmvaltool module set up by DKRZ on Mistral is based on that but I was not involved in the process so I don't know much.

zklaus commented 3 years ago

That conda/conda issue really is a red herring. That guy is asking how to run the current, 2021 conda on a RHEL 5.4 server. That was released in 2011. And he also want's to do this on the beta. Everything from today will struggle there.

First, the glibc thing really is a bit mistral specific in that it has an ancient version of OS and with it glibc, see this DKRZ blog post.

The point is that packages installed from conda should not try to use system libraries, but the files that are shipped with the conda compilers. However, we are installing the compilers from conda forge, so if a package then comes from another channel, it will not have been compiled against these libraries and fall back on system libraries.

In general you are right, but glibc really is special. From their website

The GNU C Library project provides the core libraries for the GNU system and GNU/Linux systems, as well as many other systems that use Linux as the kernel. These libraries provide critical APIs including ISO C11, POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include such foundational facilities as open, read, write, malloc, printf, getaddrinfo, dlopen, pthread_create, crypt, login, exit and more.

In other words, it is tied so intimately to the kernel that you cannot just install a new version, but rather using glibc gives you another layer of separation from the kernel that allows you to work with a more stable api. That's why it is the only library that is among the virtual packages that @valeriupredoi already mentioned.

@remi-kazeroni, I think we should discuss the commercial usage thing somewhere else. Either its own issue, or a github discussion.

valeriupredoi commented 3 years ago

oh an OS from 2011 - worse than me and my Ubuntu 14.04 :rofl:

egalytska commented 3 years ago

Dear @valeriupredoi, thanks for explaining.

About mamba being old, you can try installing it with conda install -c conda-forge mamba==0.15 - that should work fine

Btw. It did not work =/ Mamba stayed the same 0.7.3

And here comes the worst part: seems that I am still not over GLIBC issue. Despite ESMValTool and Core were installed successfully, I receive similar error while trying to run a recipe.

(esmvaltool) b380971@mlogin104% esmvaltool run examples/recipe_python.yml
ERROR:esmvalcore._main:Program terminated abnormally, see stack trace below for more information:
Traceback (most recent call last):
  File "/mnt/lustre02/work/bd0854/b380971/ESMValCore/esmvalcore/_main.py", line 432, in run
    fire.Fire(ESMValTool())
  File "/work/bd0854/b380971/anaconda3/envs/esmvaltool/lib/python3.9/site-packages/fire/core.py", line 141, in Fire
    component_trace = _Fire(component, args, parsed_flag_args, context, name)
  File "/work/bd0854/b380971/anaconda3/envs/esmvaltool/lib/python3.9/site-packages/fire/core.py", line 466, in _Fire
    component, remaining_args = _CallAndUpdateTrace(
  File "/work/bd0854/b380971/anaconda3/envs/esmvaltool/lib/python3.9/site-packages/fire/core.py", line 681, in _CallAndUpdateTrace
    component = fn(*varargs, **kwargs)
  File "/mnt/lustre02/work/bd0854/b380971/ESMValCore/esmvalcore/_main.py", line 357, in run
    from ._recipe import TASKSEP
  File "/mnt/lustre02/work/bd0854/b380971/ESMValCore/esmvalcore/_recipe.py", line 14, in <module>
    from . import _recipe_checks as check
  File "/mnt/lustre02/work/bd0854/b380971/ESMValCore/esmvalcore/_recipe_checks.py", line 12, in <module>
    from .preprocessor import TIME_PREPROCESSORS, PreprocessingTask
  File "/mnt/lustre02/work/bd0854/b380971/ESMValCore/esmvalcore/preprocessor/__init__.py", line 9, in <module>
    from .._provenance import TrackedFile
  File "/mnt/lustre02/work/bd0854/b380971/ESMValCore/esmvalcore/_provenance.py", line 7, in <module>
    from PIL import Image
  File "/work/bd0854/b380971/anaconda3/envs/esmvaltool/lib/python3.9/site-packages/PIL/Image.py", line 114, in <module>
    from . import _imaging as core
ImportError: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /work/bd0854/b380971/anaconda3/envs/esmvaltool/lib/python3.9/site-packages/PIL/_imaging.cpython-39-x86_64-linux-gnu.so)

I tried the @remi-kazeroni method:

The only way I found to solve the environment with conda was to create an environment based on the Core environment.yml file and update this environment with the Tool environment.yml:

cd ESMValCore
conda env create -f environment.yml -n esmvaltool
cd ../ESMValTool
conda env update -f environment.yml -n esmvaltool

and all works. Finally. Hopefully.

remi-kazeroni commented 3 years ago

About mamba being old, you can try installing it with conda install -c conda-forge mamba==0.15 - that should work fine

Btw. It did not work =/ Mamba stayed the same 0.7.3

Using conda install -c conda-forge mamba==0.15 from the base environment on a Mistral login node worked fine for me:

 $ mamba --version
mamba 0.15.0
conda 4.10.3

@egalytska which version of conda are you using? It can be updated with: conda update --name base conda

I tried the @remi-kazeroni method:

The only way I found to solve the environment with conda was to create an environment based on the Core environment.yml file and update this environment with the Tool environment.yml:

cd ESMValCore
conda env create -f environment.yml -n esmvaltool
cd ../ESMValTool
conda env update -f environment.yml -n esmvaltool

and all works. Finally. Hopefully.

Good to hear. To summarize, here's how I installed the ESMValTool v2.3 on Mistral (both Core and Tool in developer mode):

cd dir_to_ESMValCore
conda env create -f environment.yml -n esmvaltool
cd dir_to_ESMValTool
conda env update -f environment.yml -n esmvaltool
conda activate esmvaltool
pip install -e .[develop] # install the Tool in dev mode
cd dir_to_ESMValCore
pip install -e .[develop] # install the Core in dev mode

This installation finished in about 10 minutes.

To install the ESMValTool only, I couldn't find a way using conda (job killed after several hours) even following the instructions. In that case I used mamba:

cd dir_to_ESMValTool
mamba env create -n tool -file environment.yml
conda activate tool
pip install -e .[develop] # install the Tool in dev mode

This installation finished in about 20 minutes. Note that pre-solving the environment withconda create --name esmvaltool 'python=3.9' led to a GLIBC issue.

bouweandela commented 3 years ago

@remi-kazeroni Could you try with conda create --name esmvaltool 'python=3.9' -c conda-forge instead of conda create --name esmvaltool 'python=3.9'?

remi-kazeroni commented 3 years ago

@remi-kazeroni Could you try with conda create --name esmvaltool 'python=3.9' -c conda-forge instead of conda create --name esmvaltool 'python=3.9'?

Good point, I could solve the environment in 40 minutes on Mistral by doing:

conda create --name esmvaltool 'python=3.9' -c conda-forge
conda env update --name esmvaltool --file environment.yml

Would it make sense to change our instructions to add conda-forge

egalytska commented 3 years ago

This worked for me as well.

@remi-kazeroni Could you try with conda create --name esmvaltool 'python=3.9' -c conda-forge instead of conda create --name esmvaltool 'python=3.9'?

@egalytska which version of conda are you using? It can be updated with: conda update --name base conda

@remi-kazeroni, it is 4.10.3. But for now I leave mamba as is.