I used to be able to install both gmt (v6.1.1) and cartopy (v0.18) using conda without any problems. However, about two days ago, dependency problems started to appear, and the only solution I found is to downgrade cartopy to v0.17. It doesn’t look like the conda-forge feedstocks have changed for either of these packages, so it’s not obvious to me what has changed. Cartopy and (py-)gmt are both popular packages for map projections, so it would be good to ensure that these can co-habitate together. Some python packages install both cartopy and gmt, so this is a major nuisance.
Here is the simplest way to reproduce this problem:
conda create -n test python=3.8 cartopy=0.18 gmt=6.1.1
and if you care, here is the long output describing the dependencies
UnsatisfiableError: The following specifications were found to be incompatible with each other:
Output in format: Requested package -> Available versions
Package python conflicts for:
cartopy=0.18 -> numpy[version='>=1.16.5,<2.0a0'] -> python[version='2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.9,<3.10.0a0|3.4.*|>=3.5,<3.6.0a0|3.7.*|3.8.*|>=3.6|>=3']
python=3.8
gmt=6.1.1 -> gdal[version='>=3.0.4,<3.1.0a0'] -> python[version='>=2.7,<2.8.0a0|>=3.6,<3.7.0a0|>=3.7,<3.8.0a0|>=3.8,<3.9.0a0']
cartopy=0.18 -> python[version='>=3.6,<3.7.0a0|>=3.7,<3.8.0a0|>=3.8,<3.9.0a0']
Package ncurses conflicts for:
python=3.8 -> readline[version='>=8.0,<9.0a0'] -> ncurses[version='5.9.*|>=6.2,<6.3.0a0|>=6.0,<7.0a0|6.0.*']
python=3.8 -> ncurses[version='>=6.1,<6.3.0a0|>=6.2,<7.0a0|>=6.1,<7.0a0']
Package python_abi conflicts for:
cartopy=0.18 -> numpy[version='>=1.16.5,<2.0a0'] -> python_abi[version='2.7.*|3.6|3.9.*',build='*_cp27m|*_cp39|*_pypy36_pp73']
cartopy=0.18 -> python_abi[version='3.6.*|3.7.*|3.8.*',build='*_cp38|*_cp37m|*_cp36m']
Package sqlite conflicts for:
cartopy=0.18 -> proj[version='>=7.1.1,<7.1.2.0a0'] -> sqlite[version='3.13.*|3.20.*|>=3.24.0,<4.0a0|>=3.25.2,<4.0a0|>=3.25.3,<4.0a0|>=3.26.0,<4.0a0|>=3.28.0,<4.0a0|>=3.30.1,<4.0a0|>=3.32.3,<4.0a0|>=3.33.0,<4.0a0|>=3.31.1,<4.0a0|>=3.29.0,<4.0a0|>=3.23.1,<4.0a0|>=3.22.0,<4.0a0|>=3.20.1,<4.0a0|>=3.25.1,<4.0a0|>=3.27.2,<4.0a0|>=3.30.0,<4.0a0']
python=3.8 -> sqlite[version='>=3.30.0,<4.0a0|>=3.30.1,<4.0a0|>=3.32.3,<4.0a0|>=3.33.0,<4.0a0|>=3.31.1,<4.0a0']
Package freetype conflicts for:
gmt=6.1.1 -> ffmpeg -> freetype[version='2.8.1|2.8.1.*|>=2.8.1,<2.8.2.0a0|>=2.8.1,<2.9.0a0|>=2.9.1,<3.0a0|>=2.8,<2.9.0a0']
cartopy=0.18 -> matplotlib-base[version='>=1.5.1'] -> freetype[version='2.5.*|2.6.*|2.7|2.7.*|2.7|2.8.*|2.8.1|2.8.1.*|>=2.10.2,<3.0a0|>=2.10.4,<3.0a0|>=2.9.1,<3.0a0|>=2.8.1,<2.9.0a0|>=2.10.3,<3.0a0|>=2.8,<2.9.0a0']
Package numpy conflicts for:
cartopy=0.18 -> numpy[version='>=1.14.6,<2.0a0|>=1.16.5,<2.0a0']
cartopy=0.18 -> shapely[version='>=1.5.6'] -> numpy[version='1.10.*|1.11.*|1.12.*|1.13.*|>=1.11|>=1.19.2,<2.0a0|>=1.9.3,<2.0a0|>=1.8|>=1.9|>=1.7|1.9.*|1.8.*|>=1.11.3,<2.0a0|>=1.14.1,<2.0a0|>=1.18.5,<2.0a0|>=1.15.4,<2.0a0|>=1.16.6,<2.0a0|>=1.18.1,<2.0a0|>=1.15.1,<2.0a0']