'conda install matplotlib results in huge list on incompatibilities

I have a conda env that I build from a requirements.yml file that I obtained from a classmate so we could work on a project together. I tried installing matplotlib and it resulted in a gigantic list of incompatibilities that I don't think I could even start tackling manually.

Here are the most important packages I'm using (the ones that have come up in a few other posts I've looked at and what the error looks like):

  • python 3.9.7
  • tensorflow 2.6.0
  • anaconda 4.11
  • numpy 1.21.2
  • tornado 6.1

Is there a way of adressing this without going into every line of the error?:

The part of the error containing matplotlib incompatibilities specifically:

- matplotlib -> cycler[version='>=0.10'] -> six[version='>=1.5']
  - matplotlib -> libpng[version='>=1.6.32,<1.7.0a0|>=1.6.34,<1.7.0a0|>=1.6.35,<1.7.0a0|>=1.6.36,<1.7.0a0|>=1.6.37,<1.7.0a0']
  - matplotlib -> matplotlib-base[version='>=3.5.0,<3.5.1.0a0'] -> numpy[version='>=1.15.4,<2.0a0|>=1.16.6,<2.0a0|>=1.19.2,<2.0a0']
  - matplotlib -> matplotlib-base[version='>=3.5.0,<3.5.1.0a0'] -> packaging[version='>=20.0']
  - matplotlib -> matplotlib-base[version='>=3.5.0,<3.5.1.0a0'] -> pyparsing[version='>=2.0.3,!=2.0.4,!=2.1.2,!=2.1.6|>=2.2.1']
  - matplotlib -> matplotlib-base[version='>=3.5.0,<3.5.1.0a0'] -> python-dateutil[version='>=2.1|>=2.7']
  - matplotlib -> numpy[version='>=1.14.6,<2.0a0'] -> blas[version='*|1.0',build=mkl]
  - matplotlib -> numpy[version='>=1.14.6,<2.0a0'] -> icc_rt[version='>=13.1.6|>=2019.0.0|>=16.0.4']
  - matplotlib -> numpy[version='>=1.14.6,<2.0a0'] -> mkl-service[version='>=2,<3.0a0|>=2.3.0,<3.0a0']
  - matplotlib -> numpy[version='>=1.14.6,<2.0a0'] -> mkl[version='>=2018.0.0,<2019.0a0|>=2018.0.1,<2019.0a0|>=2018.0.2,<2019.0a0|>=2018.0.3,<2019.0a0|>=2019.1,<2021.0a0|>=2019.3,<2021.0a0|>=2019.4,<2021.0a0|>=2021.2.0,<2022.0a0|>=2021.3.0,<2022.0a0|>=2019.4,<2020.0a0']
  - matplotlib -> numpy[version='>=1.14.6,<2.0a0'] -> mkl_random[version='>=1.0.2,<2.0a0|>=1.2.1,<2.0a0|>=1.0.4,<2.0a0']
  - matplotlib -> numpy[version='>=1.14.6,<2.0a0'] -> numpy-base[version='1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.11.3|1.14.3|1.14.3|1.14.3|1.14.4|1.14.4|1.14.4|1.14.5|1.14.5|1.14.5|1.14.5|1.14.5|1.14.5|1.14.5|1.14.5|1.14.5|1.14.5|1.14.5|1.14.5|1.14.5|1.14.5|1.14.5|1.14.5|1.14.5|1.14.6|1.14.6|1.14.6|1.14.6|1.14.6|1.14.6|1.14.6|1.14.6|1.15.0|1.15.0|1.15.0|1.15.0|1.15.1|1.15.1|1.15.1|1.15.1|1.15.2|1.15.2|1.15.2|1.15.2|1.15.2|1.15.3|1.15.3|1.15.3|1.15.4|1.15.4|1.15.4|1.15.4|1.15.4|1.15.4|1.16.0|1.16.0|1.16.0|1.16.0|1.16.0|1.16.0|1.16.1|1.16.1|1.16.1|1.16.1|1.16.1|1.16.1|1.16.2|1.16.2|1.16.2|1.16.3|1.16.3|1.16.3|1.16.4|1.16.4|1.16.5|1.16.5|1.16.5|1.16.6|1.16.6|1.16.6|1.16.6|1.16.6|1.16.6|1.16.6|1.16.6|1.16.6|1.17.2.*|1.17.3.*|1.17.4.*|1.18.1.*|1.18.5.*|1.19.1|1.19.1|1.19.1|1.19.2|1.19.2|1.19.2|1.19.2|1.20.1|1.20.1|1.20.1|1.20.2|1.20.2|1.20.2|1.20.3|1.20.3|1.20.3|1.21.2|1.17.0|1.17.0|1.9.3|1.9.3|1.9.3|1.9.3|1.9.3|1.9.3|1.9.3|>=1.9.3,<2.0a0',build='py27h0bb1d87_7|py35h5c71026_7|py36h5c71026_7|py27h0bb1d87_8|py35h4a99626_9|py27hfef472a_9|py37h8128ebf_9|py36h8128ebf_9|py35h8128ebf_9|py27h2753ae9_9|py27h2753ae9_10|py36h8128ebf_11|py37h2a9b21d_11|py36h2a9b21d_11|py27hb1d0314_11|py37hc3f5095_12|py38hc3f5095_12|py27h917549b_1|py35h5c71026_0|py27h0bb1d87_0|py35h5c71026_0|py27h0bb1d87_0|py27h0bb1d87_1|py36h5c71026_1|py37h5c71026_2|py27h0bb1d87_2|py27h0bb1d87_3|py36h5c71026_3|py27h0bb1d87_4|py37h5c71026_4|py36h5c71026_4|py35h4a99626_4|py37h8128ebf_4|py27h2753ae9_4|py35h8128ebf_4|py38hc3f5095_4|py37hc3f5095_5|py27hb1d0314_5|py36hc3f5095_5|py35h4a99626_0|py37h4a99626_0|py37h8128ebf_0|py35h8128ebf_0|py27h2753ae9_0|py36h8128ebf_0|py35h8128ebf_0|py37h8128ebf_0|py36h8128ebf_0|py37h8128ebf_0|py27h2753ae9_0|py37h8128ebf_0|py36h8128ebf_0|py36hc3f5095_0|py27hb1d0314_0|py36hc3f5095_0|py37hc3f5095_1|py27hb1d0314_1|py27hb1d0314_0|py36hc3f5095_0|py37hc3f5095_1|py27hb1d0314_1|py27hb1d0314_0|py27hb1d0314_0|py36hc3f5095_0|py36hc3f5095_0|py27hb1d0314_0|py36h5bb6eb2_3|py38h5bb6eb2_3|py37hc2deb75_0|py39h0829f74_0|py37h0829f74_0|py38h0829f74_0|py39hc2deb75_0|py38hc2deb75_0|py37hc2deb75_0|py38hc2deb75_0|py39hc2deb75_0|py38haf7ebc8_0|py39haf7ebc8_0|py37haf7ebc8_0|py39hbd0edd7_0|py36ha3acd2a_0|py37ha3acd2a_0|py38ha3acd2a_0|py36ha3acd2a_0|py37ha3acd2a_0|py38ha3acd2a_0|py39h5bb6eb2_3|py37h5bb6eb2_3|py39h2e04a8b_1|py38hc3f5095_0|py37hc3f5095_0|py37hc3f5095_0|py27hb1d0314_0|py36hc3f5095_0|py37hc3f5095_0|py36hc3f5095_0|py37hc3f5095_0|py36hc3f5095_0|py37hc3f5095_0|py36hc3f5095_1|py37hc3f5095_0|py36hc3f5095_1|py37hc3f5095_0|py37hc3f5095_0|py27hb1d0314_0|py27h2753ae9_0|py27h2753ae9_1|py36h8128ebf_0|py27h2753ae9_0|py27hfef472a_0|py36h4a99626_0|py36h8128ebf_4|py36hc3f5095_0|py37hc3f5095_0|py37h5c71026_3|py36h5c71026_2|py37h5c71026_1|py37h5c71026_0|py36h5c71026_0|py36h5c71026_0|py36h555522e_1|py35h555522e_1|py36hc3f5095_12|py27hb1d0314_12|py37h8128ebf_11|py37h8128ebf_10|py36h8128ebf_10|py35h8128ebf_10|py37h4a99626_9|py36h4a99626_9|py35h4a99626_8|py37h5c71026_8|py36h5c71026_8|py37h5c71026_7|py27h0bb1d87_7|py37h5c71026_7|py36h5c71026_7|py27h0bb1d87_6|py36h5c71026_6|py37h5c71026_6']
  - matplotlib -> pyparsing
  - matplotlib -> python-dateutil
  - matplotlib -> python[version='>=2.7,<2.8.0a0'] -> ca-certificates
  - matplotlib -> python[version='>=3.6,<3.7.0a0'] -> vs2015_runtime[version='>=14.0.25123,<15.0a0|>=14.0.25420|>=14.15.26706|>=14.27.29016|>=14.16.27012']
  - matplotlib -> python[version='>=3.9,<3.10.0a0'] -> openssl[version='>=1.1.1a,<1.1.2a|>=1.1.1b,<1.1.2a|>=1.1.1c,<1.1.2a|>=1.1.1d,<1.1.2a|>=1.1.1e,<1.1.2a|>=1.1.1f,<1.1.2a|>=1.1.1g,<1.1.2a|>=1.1.1h,<1.1.2a|>=1.1.1i,<1.1.2a|>=1.1.1j,<1.1.2a|>=1.1.1k,<1.1.2a|>=1.1.1l,<1.1.2a']
  - matplotlib -> python[version='>=3.9,<3.10.0a0'] -> pip
  - matplotlib -> python[version='>=3.9,<3.10.0a0'] -> sqlite[version='>=3.25.3,<4.0a0|>=3.26.0,<4.0a0|>=3.27.2,<4.0a0|>=3.28.0,<4.0a0|>=3.29.0,<4.0a0|>=3.30.1,<4.0a0|>=3.31.1,<4.0a0|>=3.33.0,<4.0a0|>=3.35.4,<4.0a0|>=3.36.0,<4.0a0|>=3.32.3,<4.0a0|>=3.30.0,<4.0a0|>=3.35.1,<4.0a0']
  - matplotlib -> python[version='>=3.9,<3.10.0a0'] -> tzdata
  - matplotlib -> pytz
  - matplotlib -> setuptools -> wincertstore[version='>=0.2']
  - matplotlib -> tornado -> certifi[version='>=2016.09|>=2016.9.26|>=2020.06.20']
  - matplotlib -> vc[version='14.*|>=14.1,<15.0a0|9.*']
  - matplotlib -> vs2015_runtime[version='>=14.16.27012,<15.0a0']
  - matplotlib -> zlib[version='>=1.2.11,<1.3.0a0']



Solution 1:[1]

  • Create separate conda environments. keras-tf should be in a separate environment from (base), which you're doing, but you may want to create it from scratch.
    • conda create -n tf tensorflow matplotlib will only install compatible versions of packages.
  • When creating an environment from scratch, conda works out the correct dependencies, but if installing from a requirements file, specific versions are being forced. If the yml file being used wasn't from conda, there may be version conflicts.
  • The more packages with a specific version, the more likely there is to be an version conflict.
  • See conda: Creating an environment with commands and Anaconda Tensorflow Documentation
  • Following is my working tensorflow conda environment, which will become outdated and shouldn't necessarily be used by others. It was posted as an example.
name: tf-gpu
channels:
  - defaults
  - conda-forge
dependencies:
  - _tflow_select=2.1.0=gpu
  - abseil-cpp=20210324.2=hd77b12b_0
  - absl-py=0.13.0=py39haa95532_0
  - aiohttp=3.8.1=py39h2bbff1b_0
  - aiosignal=1.2.0=pyhd3eb1b0_0
  - astor=0.8.1=py39haa95532_0
  - astunparse=1.6.3=py_0
  - async-timeout=4.0.1=pyhd3eb1b0_0
  - attrs=21.2.0=pyhd3eb1b0_0
  - backcall=0.2.0=pyhd3eb1b0_0
  - blas=1.0=mkl
  - blinker=1.4=py39haa95532_0
  - bottleneck=1.3.2=py39h7cc1a96_1
  - brotli=1.0.9=ha925a31_2
  - brotlipy=0.7.0=py39h2bbff1b_1003
  - ca-certificates=2021.10.26=haa95532_2
  - cached-property=1.5.2=py_0
  - cachetools=4.2.2=pyhd3eb1b0_0
  - certifi=2021.10.8=py39haa95532_0
  - cffi=1.15.0=py39h2bbff1b_0
  - chardet=4.0.0=py39haa95532_1003
  - charset-normalizer=2.0.4=pyhd3eb1b0_0
  - click=8.0.3=pyhd3eb1b0_0
  - colorama=0.4.4=pyhd3eb1b0_0
  - coverage=5.5=py39h2bbff1b_2
  - cryptography=3.4.8=py39h71e12ea_0
  - cudatoolkit=11.3.1=h59b6b97_2
  - cudnn=8.2.1=cuda11.3_0
  - cycler=0.11.0=pyhd3eb1b0_0
  - cython=0.29.24=py39h604cdb4_0
  - dataclasses=0.8=pyh6d0b6a4_7
  - debugpy=1.5.1=py39hd77b12b_0
  - decorator=5.1.0=pyhd3eb1b0_0
  - entrypoints=0.3=py39haa95532_0
  - flatbuffers=2.0.0=h6c2663c_0
  - fonttools=4.25.0=pyhd3eb1b0_0
  - freetype=2.10.4=hd328e21_0
  - frozenlist=1.2.0=py39h2bbff1b_0
  - gast=0.4.0=pyhd3eb1b0_0
  - giflib=5.2.1=h62dcd97_0
  - google-auth=1.33.0=pyhd3eb1b0_0
  - google-auth-oauthlib=0.4.1=py_2
  - google-pasta=0.2.0=pyhd3eb1b0_0
  - grpcio=1.42.0=py39hc60d5dd_0
  - h5py=3.6.0=py39h3de5c98_0
  - hdf5=1.10.6=h7ebc959_0
  - icc_rt=2019.0.0=h0cc432a_1
  - icu=68.1=h6c2663c_0
  - idna=3.3=pyhd3eb1b0_0
  - importlib-metadata=4.8.2=py39haa95532_0
  - intel-openmp=2021.4.0=haa95532_3556
  - ipykernel=6.4.1=py39haa95532_1
  - ipython=7.29.0=py39hd4e2768_0
  - ipython_genutils=0.2.0=pyhd3eb1b0_1
  - jedi=0.18.0=py39haa95532_1
  - jpeg=9d=h2bbff1b_0
  - jupyter_client=7.0.6=pyhd3eb1b0_0
  - jupyter_core=4.9.1=py39haa95532_0
  - keras=2.6.0=py39hd3eb1b0_0
  - keras-base=2.6.0=pyhd3eb1b0_0
  - keras-preprocessing=1.1.2=pyhd3eb1b0_0
  - kiwisolver=1.3.1=py39hd77b12b_0
  - libclang=11.1.0=default_h5c34c98_1
  - libcurl=7.80.0=h86230a5_0
  - libpng=1.6.37=h2a8f88b_0
  - libprotobuf=3.17.2=h23ce68f_1
  - libssh2=1.9.0=h7a1dbc1_1
  - libtiff=4.2.0=hd0e1b90_0
  - libwebp=1.2.0=h2bbff1b_0
  - lz4-c=1.9.3=h2bbff1b_1
  - markdown=3.3.4=py39haa95532_0
  - matplotlib=3.5.0=py39haa95532_0
  - matplotlib-base=3.5.0=py39h6214cd6_0
  - matplotlib-inline=0.1.2=pyhd3eb1b0_2
  - mkl=2021.4.0=haa95532_640
  - mkl-service=2.4.0=py39h2bbff1b_0
  - mkl_fft=1.3.1=py39h277e83a_0
  - mkl_random=1.2.2=py39hf11a4ad_0
  - multidict=5.1.0=py39h2bbff1b_2
  - munkres=1.1.4=py_0
  - nest-asyncio=1.5.1=pyhd3eb1b0_0
  - numexpr=2.7.3=py39hb80d3ca_1
  - numpy=1.21.2=py39hfca59bb_0
  - numpy-base=1.21.2=py39h0829f74_0
  - oauthlib=3.1.1=pyhd3eb1b0_0
  - olefile=0.46=pyhd3eb1b0_0
  - openssl=1.1.1l=h2bbff1b_0
  - opt_einsum=3.3.0=pyhd3eb1b0_1
  - packaging=21.3=pyhd3eb1b0_0
  - pandas=1.3.4=py39h6214cd6_0
  - parso=0.8.2=pyhd3eb1b0_0
  - pickleshare=0.7.5=pyhd3eb1b0_1003
  - pillow=8.4.0=py39hd45dc43_0
  - pip=21.2.4=py39haa95532_0
  - prompt-toolkit=3.0.20=pyhd3eb1b0_0
  - protobuf=3.17.2=py39hd77b12b_0
  - pyasn1=0.4.8=pyhd3eb1b0_0
  - pyasn1-modules=0.2.8=py_0
  - pycparser=2.21=pyhd3eb1b0_0
  - pygments=2.10.0=pyhd3eb1b0_0
  - pyjwt=2.1.0=py39haa95532_0
  - pyopenssl=21.0.0=pyhd3eb1b0_1
  - pyparsing=3.0.4=pyhd3eb1b0_0
  - pyqt=5.12.3=py39hcbf5309_8
  - pyqt-impl=5.12.3=py39h415ef7b_8
  - pyqt5-sip=4.19.18=py39h415ef7b_8
  - pyqtchart=5.12=py39h415ef7b_8
  - pyqtwebengine=5.12.1=py39h415ef7b_8
  - pyreadline=2.1=py39haa95532_1
  - pysocks=1.7.1=py39haa95532_0
  - python=3.9.7=h6244533_1
  - python-dateutil=2.8.2=pyhd3eb1b0_0
  - python-flatbuffers=1.12=pyhd3eb1b0_0
  - python_abi=3.9=2_cp39
  - pytz=2021.3=pyhd3eb1b0_0
  - pywin32=228=py39hbaba5e8_1
  - pyyaml=6.0=py39h2bbff1b_1
  - pyzmq=22.3.0=py39hd77b12b_2
  - qt=5.12.9=h5909a2a_4
  - requests=2.26.0=pyhd3eb1b0_0
  - requests-oauthlib=1.3.0=py_0
  - rsa=4.7.2=pyhd3eb1b0_1
  - scipy=1.7.1=py39hbe87c03_2
  - seaborn=0.11.2=pyhd3eb1b0_0
  - setuptools=58.0.4=py39haa95532_0
  - six=1.16.0=pyhd3eb1b0_0
  - snappy=1.1.8=h33f27b4_0
  - sqlite=3.36.0=h2bbff1b_0
  - tensorboard=2.6.0=py_1
  - tensorboard-data-server=0.6.0=py39haa95532_0
  - tensorboard-plugin-wit=1.6.0=py_0
  - tensorflow=2.6.0=gpu_py39he88c5ba_0
  - tensorflow-base=2.6.0=gpu_py39hb3da07e_0
  - tensorflow-estimator=2.6.0=pyh7b7c402_0
  - tensorflow-gpu=2.6.0=h17022bd_0
  - termcolor=1.1.0=py39haa95532_1
  - tk=8.6.11=h2bbff1b_0
  - tornado=6.1=py39h2bbff1b_0
  - traitlets=5.1.1=pyhd3eb1b0_0
  - typing-extensions=3.10.0.2=hd3eb1b0_0
  - typing_extensions=3.10.0.2=pyh06a4308_0
  - tzdata=2021e=hda174b7_0
  - urllib3=1.26.7=pyhd3eb1b0_0
  - vc=14.2=h21ff451_1
  - vs2015_runtime=14.27.29016=h5e58377_2
  - wcwidth=0.2.5=pyhd3eb1b0_0
  - werkzeug=2.0.2=pyhd3eb1b0_0
  - wheel=0.35.1=pyhd3eb1b0_0
  - win_inet_pton=1.1.0=py39haa95532_0
  - wincertstore=0.2=py39haa95532_2
  - wrapt=1.13.3=py39h2bbff1b_2
  - xz=5.2.5=h62dcd97_0
  - yaml=0.2.5=he774522_0
  - yarl=1.6.3=py39h2bbff1b_0
  - zipp=3.6.0=pyhd3eb1b0_0
  - zlib=1.2.11=h62dcd97_4
  - zstd=1.4.9=h19a0ad4_0
prefix: C:\Users\...\anaconda3\envs\tf-gpu

Solution 2:[2]

I had the same problem. Couldn't install matplotlib 3.5.1 after I installed tensorflow 2.6.0. I could solve it by using using conda-forge (see https://anaconda.org/conda-forge/matplotlib):

conda install -c conda-forge matplotlib 

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 Tony T