Skip to content

Conda, dependency clash when installing cf-python and cf-plot alongside Jupyter. #883

@ThatDesert

Description

@ThatDesert

A description of the issue.

If you try to install Jupyter in a Conda environment after installing cf-python, cf-plot, and their dependencies, a package conflict will occur. However, if Jupyter is installed first, and then the cf libraries, no such error takes place and everything works as it should.

What you expected to happen.

All packages install in any order without issue.

The steps needed to reproduce it.

  1. Create a new Conda environment.
  2. Install cf-python, cf-plot, udunits2, and esmpy in the environment.
$ conda install -c conda-forge cf-python cf-plot udunits2
$ conda install -c conda-forge "esmpy>=8.7.0"
  1. Attempt to install Jupyter.
$ conda install jupyter
  1. Command fails stating incompatible packages, see traceback below...

Any traceback information.

Channels:
 - defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: failed

LibMambaUnsatisfiableError: Encountered problems while solving:
  - package esmpy-8.8.1-pyhecae5ae_0 requires esmf 8.8.1.*, but none of the providers can be installed

Could not solve for environment specs
The following packages are incompatible
├─ esmpy >=8.7.0 * is installable and it requires
│  └─ esmf =8.8.1 *, which requires
│     └─ hdf5 >=1.14.6,<1.14.7.0a0 *, which requires
│        └─ libzlib >=1.3.1,<2.0a0 *, which requires
│           └─ zlib ==1.3.1 *_2, which can be installed;
├─ jupyter =* * is installable with the potential options
│  ├─ jupyter 1.0.0 would require
│  │  └─ python >=2.7,<2.8.0a0 *, which can be installed;
│  ├─ jupyter [1.0.0|1.1.1] would require
│  │  └─ python >=3.10,<3.11.0a0 *, which can be installed;
│  ├─ jupyter [1.0.0|1.1.1] would require
│  │  └─ python >=3.11,<3.12.0a0 *, which can be installed;
│  ├─ jupyter [1.0.0|1.1.1] would require
│  │  └─ qtconsole =* * with the potential options
│  │     ├─ qtconsole [4.3.1|4.4.0|4.4.1|4.4.2|4.4.3] would require
│  │     │  └─ python >=2.7,<2.8.0a0 *, which can be installed;
│  │     ├─ qtconsole [4.3.1|4.4.0|4.4.1] would require
│  │     │  └─ python >=3.5,<3.6.0a0 *, which can be installed;
│  │     ├─ qtconsole [4.3.1|4.4.0|4.4.1|4.4.2|4.4.3] would require
│  │     │  └─ python >=3.6,<3.7.0a0 *, which can be installed;
│  │     ├─ qtconsole [4.3.1|4.4.0|...|5.4.0] would require
│  │     │  └─ python >=3.7,<3.8.0a0 *, which can be installed;
│  │     ├─ qtconsole [5.3.1|5.3.2|...|5.6.1] would require
│  │     │  └─ python >=3.10,<3.11.0a0 *, which can be installed;
│  │     ├─ qtconsole [5.3.1|5.3.2|...|5.6.0] would require
│  │     │  └─ python >=3.8,<3.9.0a0 *, which can be installed;
│  │     ├─ qtconsole [5.3.1|5.3.2|...|5.6.1] would require
│  │     │  └─ python >=3.9,<3.10.0a0 *, which can be installed;
│  │     ├─ qtconsole [5.3.2|5.4.0|...|5.6.1] would require
│  │     │  └─ python >=3.11,<3.12.0a0 *, which can be installed;
│  │     ├─ qtconsole [4.4.4|4.5.1|...|5.6.1] would require
│  │     │  └─ pyqt =* * with the potential options
│  │     │     ├─ pyqt [5.15.10|5.15.7|5.9.2|6.7.1] would require
│  │     │     │  └─ python >=3.10,<3.11.0a0 *, which can be installed;
│  │     │     ├─ pyqt [5.15.10|5.15.7|6.7.1] would require
│  │     │     │  └─ python >=3.11,<3.12.0a0 *, which can be installed;
│  │     │     ├─ pyqt 5.15.10 would require
│  │     │     │  └─ qt-main >=5.15.2,<5.16.0a0 * but there are no viable options
│  │     │     │     ├─ qt-main 5.15.2 would require
│  │     │     │     │  └─ zlib >=1.2.13,<1.3.0a0 *, which conflicts with any installable versions previously reported;
│  │     │     │     └─ qt-main 5.15.2 would require
│  │     │     │        └─ zlib >=1.2.12,<1.3.0a0 *, which conflicts with any installable versions previously reported;
│  │     │     ├─ pyqt [5.15.10|6.7.1] would require
│  │     │     │  └─ python >=3.13,<3.14.0a0 *, which can be installed;
│  │     │     ├─ pyqt [5.15.10|5.15.7|5.9.2] would require
│  │     │     │  └─ python >=3.8,<3.9.0a0 *, which can be installed;
│  │     │     ├─ pyqt [5.15.10|5.15.7|5.9.2|6.7.1] would require
│  │     │     │  └─ python >=3.9,<3.10.0a0 *, which can be installed;
│  │     │     ├─ pyqt [5.15.7|5.6.0|5.9.2] would require
│  │     │     │  └─ python >=3.7,<3.8.0a0 *, which can be installed;
│  │     │     ├─ pyqt [5.6.0|5.9.2] would require
│  │     │     │  └─ python >=2.7,<2.8.0a0 *, which can be installed;
│  │     │     ├─ pyqt [5.6.0|5.9.2] would require
│  │     │     │  └─ python >=3.5,<3.6.0a0 *, which can be installed;
│  │     │     ├─ pyqt [5.6.0|5.9.2] would require
│  │     │     │  └─ python >=3.6,<3.7.0a0 *, which can be installed;
│  │     │     └─ pyqt 6.7.1 would require
│  │     │        └─ qtsvg [>=6.7.2,<6.8.0a0 *|>=6.7.3,<6.8.0a0 *], which requires
│  │     │           └─ zlib >=1.2.13,<1.3.0a0 *, which conflicts with any installable versions previously reported;
│  │     └─ qtconsole 5.6.1 would require
│  │        └─ python >=3.13,<3.14.0a0 *, which can be installed;
│  ├─ jupyter 1.0.0 would require
│  │  └─ python >=3.5,<3.6.0a0 *, which can be installed;
│  ├─ jupyter 1.0.0 would require
│  │  └─ python >=3.6,<3.7.0a0 *, which can be installed;
│  ├─ jupyter 1.0.0 would require
│  │  └─ python >=3.7,<3.8.0a0 *, which can be installed;
│  ├─ jupyter 1.0.0 would require
│  │  └─ python >=3.8,<3.9.0a0 *, which can be installed;
│  ├─ jupyter [1.0.0|1.1.1] would require
│  │  └─ python >=3.9,<3.10.0a0 *, which can be installed;
│  └─ jupyter 1.1.1 would require
│     └─ python >=3.13,<3.14.0a0 *, which can be installed;
└─ pin on python 3.12.* =* * is not installable because it requires
   └─ python =3.12 *, which conflicts with any installable versions previously reported.

Pins seem to be involved in the conflict. Currently pinned specs:
 - python=3.12

The version of the software and the environment in which you are encountering an issue.

Platform: Linux-6.6.87.2-microsoft-standard-WSL2-x86_64-with-glibc2.39
Conda: 25.5.1
Python: 3.12.11
packaging: 25.0
numpy: 2.3.2
cfdm.core: 1.12.2.0
udunits2 library: /home/olaxko/miniconda3/envs/ncas-cf-test2/lib/libudunits2.so.0
HDF5 library: 1.14.6
netcdf library: 4.9.2
netCDF4: 1.7.2
h5netcdf: 1.6.3
h5py: 3.14.0
zarr: 3.1.1
s3fs: 2025.7.0
scipy: 1.16.0
dask: 2025.7.0
cftime: 1.6.4
cfunits: 3.3.7
cfdm: 1.12.2.0
esmpy/ESMF: 8.8.1
psutil: 7.0.0
matplotlib: 3.10.5
cfplot: 3.4.0
cf: 3.18.0

Solution

A solution to this seems to be to install Jupyter before cf, but if this also happens with packages beyond Jupyter, then this may prevent installation of any packages in the environment once one installs cf.

Metadata

Metadata

Labels

installationRelating to installing the library

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions