【问题标题】:Can't install matplotlib in Conda env w/ Python 3.8无法在带有 Python 3.8 的 Conda 环境中安装 matplotlib
【发布时间】:2020-04-30 13:44:18
【问题描述】:

我正在 Ubuntu 18.04 系统上为 Python 3.8 复制我的 Python 3.7 Conda 环境。我从一个以 python=3.8 作为唯一要求的普通 jane Conda env 开始。然后我开始从我的 3.7 环境安装包。

大部分过程顺利进行,但 matplotlib 失败了。 Conda 搜索显示 3.8 版本的 matplotlib,但 conda install 命令无法解析一组不冲突的包。 Numpy、ipython 等都安装得很好。在旋转了很多旋转的小东西之后,它抱怨:

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

Package python conflicts for:
python=3.8
Package pip conflicts for:
python=3.8 -> pip
matplotlib -> python[version='>=3.7,<3.8.0a0'] -> pip
Package certifi conflicts for:
python=3.8 -> pip -> setuptools -> certifi[version='>=2016.09|>=2016.9.26']
Package wheel conflicts for:
python=3.8 -> pip -> wheel
matplotlib -> python[version='>=3.7,<3.8.0a0'] -> pip -> wheel
Package python-dateutil conflicts for:
matplotlib -> python-dateutil
Package ca-certificates conflicts for:
matplotlib -> setuptools -> ca-certificates
python=3.8 -> openssl[version='>=1.1.1d,<1.1.2a'] -> ca-certificates
Package setuptools conflicts for:
python=3.8 -> pip -> setuptools
matplotlib -> setuptools

我不太清楚这意味着什么。可能是 matplotlib 本身的版本依赖不正确,或者 Python >= 3.8.0a0 没有官方的 matplotlib Conda 包?康达搜索表明应该有一些东西:

% conda search matplotlib
...
matplotlib                     3.1.1  py38h5429711_0  pkgs/main

这是 conda info 的输出:

     active environment : python38
    active env location : /home/skip/miniconda3/envs/python38
            shell level : 2
       user config file : /home/skip/.condarc
 populated config files : /home/skip/.condarc
          conda version : 4.8.1
    conda-build version : not installed
         python version : 3.7.3.final.0
       virtual packages : __glibc=2.27
       base environment : /home/skip/miniconda3  (writable)
           channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /home/skip/miniconda3/pkgs
                          /home/skip/.conda/pkgs
       envs directories : /home/skip/miniconda3/envs
                          /home/skip/.conda/envs
               platform : linux-64
             user-agent : conda/4.8.1 requests/2.22.0 CPython/3.7.3 Linux/4.15.0-74-generic ubuntu/18.04.3 glibc/2.27
                UID:GID : 1000:1000
             netrc file : /home/skip/.netrc
           offline mode : False

不确定为什么它将 3.7.3 报告为 Python 版本。也许那是在根环境中?我显然已经安装了 3.8.1:

(python38) polly% python
Python 3.8.1 (default, Jan  8 2020, 22:29:32) 
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

【问题讨论】:

  • 感谢您的指点。我安装了 freetype 标头,所以这不太可能成为问题。我的安装尝试永远不会编译任何东西(此外,Conda 包不是依赖于架构的二进制文件吗?)另外,请注意,我安装了 Python 3.7.6 的环境确实安装了最新的 Conda 包版本的 matplotlib(3.1. 1)。它确实看起来像一个 Conda 依赖项。我会继续挖掘。
  • 问题的最简单演示...成功:
    conda create --name test python=3.7 matplotlib 而失败:
    conda create --name test python=3.8 matplotlib

标签: python matplotlib anaconda


【解决方案1】:

截至 2020 年 3 月,不幸的是,您必须降级您的 conda 可执行文件(在您的基础环境中)才能安装 matplotlib。这是github discussion

试试这个:

conda activate
conda config --set allow_conda_downgrades true
conda install conda==4.6.14

conda create --name test_env
conda activate test_env
conda install matplotlib

这应该可行。

【讨论】:

    【解决方案2】:
    conda install -c conda-forge matplotlib
    

    它对我有用。我的环境是 python 3.8 和 Ubuntu 18.04。

    【讨论】:

    • 这对我也有用。
    猜你喜欢
    • 1970-01-01
    • 2020-08-18
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 2020-08-11
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多