【问题标题】:Pip install Matplotlib error with virtualenv使用 virtualenv 安装 Matplotlib 错误
【发布时间】:2012-04-07 10:06:40
【问题描述】:

我正在尝试在新的 virtualenv 中安装 matplotlib。

当我这样做时:

pip install matplotlib

pip install http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.1.0/matplotlib-1.1.0.tar.gz

我收到此错误:

building 'matplotlib._png' extension

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -fPIC -  DPY_ARRAY_UNIQUE_SYMBOL=MPL_ARRAY_API -DPYCXX_ISO_CPP_LIB=1 -I/usr/local/include -I/usr/include -I. -I/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/numpy/core/include -I. -I/usr/include/python2.7 -c src/_png.cpp -o build/temp.linux-x86_64-2.7/src/_png.o

src/_png.cpp:10:20: fatal error: png.h: No such file or directory

compilation terminated.

error: command 'gcc' failed with exit status 1

有人知道发生了什么吗?

非常感谢任何帮助。

【问题讨论】:

  • 您可能还会看到The following required packages can not be built: freetype, png,这与(我认为)较新版本的pip 中的错误相同。

标签: python matplotlib pip virtualenv


【解决方案1】:

构建 Matplotlib 需要 libpng(以及 freetype),它不是 Python 库,因此 pip 不处理安装它(或 freetype)。

您需要按照libpng-develfreetype-devel 的方式安装一些东西(或任何适用于您的操作系统的等效项)。

有关 matplotlib,请参阅 building requirements/instructions

【讨论】:

  • 感谢您的信息!我终于通过在 ubuntu 中安装以下依赖项来让它工作:libpng-devlibjpeg8-devlibfreetype6-dev
  • sudo apt-get build-dep python-matplotlib 也能解决问题!
  • 它可能会工作,但请注意,它要安装相当多的包(超过此评论框可以容纳的数量),但大约需要 0.6 GB 的包。
  • 在我的 debian (wheezy/unstable) 系统上,即使安装了libfreetype6-dev,它也会失败。原来我还需要安装pkg-config
  • 我实际上在 ubuntu 14.04 上安装了 libfreetype6-dev。 Matplotlib 似乎没有选择它。
【解决方案2】:

要生成 png 格式的图形,您需要安装以下依赖包

sudo apt-get install libpng-dev
sudo apt-get install libfreetype6-dev

Ubuntu https://apps.ubuntu.com/cat/applications/libpng12-0/ 或使用以下命令

sudo apt-get install libpng12-0

【讨论】:

    【解决方案3】:

    作为补充,在 Amazon EC2 上,我需要做的是:

    sudo yum install freetype-devel
    sudo yum install libpng-devel
    sudo pip install matplotlib
    

    【讨论】:

    • 推荐安装一个包到虚拟环境,这样pip就不错了。因此sudo pip install 否定了 pip 带来的大部分用处。
    【解决方案4】:

    在 OSX 上,我可以通过以下方式安装 matplotlib:

    pip install matplotlib==1.4.0
    

    只有在我跑了之后:

    brew install freetype
    

    【讨论】:

      【解决方案5】:

      由于我曾两次为这个问题苦苦挣扎(即使在安装了新的 kubuntu 15.04 之后)并且安装 freetype 并没有解决任何问题,所以我进一步调查了。

      解决办法:
      From github issue:

      仅当未安装 pkg-config 时才会出现此错误;
      一个简单的
      sudo apt-get install pkg-config
      现在将支持包含路径。

      此安装顺利进行后。

      【讨论】:

      • 这里也一样。 pip install matplotlib 给了我错误:IMPORTANT WARNING: pkg-config is not installed. matplotlib may not be able to find some of its dependencies. Freetype 显示未安装。我刚刚做了brew install pkg-config 并且能够通过。
      • 这也是 Bash on Ubuntu on Windows Insider Preview 的问题
      【解决方案6】:
      sudo apt-get install libpng-dev libjpeg8-dev libfreetype6-dev
      

      在 Ubuntu 14.04 上为我工作

      【讨论】:

      • 我首先需要sudo apt-get install pkg-config
      • @RahulChauhan:请将您的 alternative solution 作为单独的答案发布,而不是尝试将其编辑为其他人的答案。
      【解决方案7】:

      以上答案在 Mint 中都不适合我,所以我做了:

      sudo apt-get install build-essential g++
      

      【讨论】:

        【解决方案8】:

        在 Windows 下这对我有用:

        python -m pip install -U pip setuptools
        python -m pip install matplotlib
        

        (来自https://matplotlib.org/users/installing.html

        【讨论】:

          【解决方案9】:

          如果在 MacOSx 上尝试

          xcode-select --install
          

          这符合subprocess 32,失败的原因。

          【讨论】:

            【解决方案10】:

            为了减少安装所需的包,你只需要

            apt-get install -y \
                libfreetype6-dev \
                libxft-dev && \
                pip install matplotlib
            

            您将在本地安装以下软件包

            Collecting matplotlib
              Downloading matplotlib-2.2.0-cp35-cp35m-manylinux1_x86_64.whl (12.5MB)
            Collecting pytz (from matplotlib)
              Downloading pytz-2018.3-py2.py3-none-any.whl (509kB)
            Collecting python-dateutil>=2.1 (from matplotlib)
              Downloading python_dateutil-2.6.1-py2.py3-none-any.whl (194kB)
            Collecting pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 (from matplotlib)
              Downloading pyparsing-2.2.0-py2.py3-none-any.whl (56kB)
            Requirement already satisfied: six>=1.10 in /opt/conda/envs/pytorch-py35/lib/python3.5/site-packages (from matplotlib)
            Collecting cycler>=0.10 (from matplotlib)
              Downloading cycler-0.10.0-py2.py3-none-any.whl
            Collecting kiwisolver>=1.0.1 (from matplotlib)
              Downloading kiwisolver-1.0.1-cp35-cp35m-manylinux1_x86_64.whl (949kB)
            Requirement already satisfied: numpy>=1.7.1 in /opt/conda/envs/pytorch-py35/lib/python3.5/site-packages (from matplotlib)
            Requirement already satisfied: setuptools in /opt/conda/envs/pytorch-py35/lib/python3.5/site-packages/setuptools-27.2.0-py3.5.egg (from kiwisolver>=1.0.1->matplotlib)
            Installing collected packages: pytz, python-dateutil, pyparsing, cycler, kiwisolver, matplotlib
            Successfully installed cycler-0.10.0 kiwisolver-1.0.1 matplotlib-2.2.0 pyparsing-2.2.0 python-dateutil-2.6.1 pytz-2018.3
            

            【讨论】:

              【解决方案11】:

              另一种选择是安装 anaconda,它附带的包有:Matplotlib、numpy 和 pandas。

              https://anaconda.org

              【讨论】:

                【解决方案12】:

                安装matplotlib==3.3.3Python 3.9 为我解决了这个问题。 Reference

                【讨论】:

                  猜你喜欢
                  • 2016-11-11
                  • 2022-12-18
                  • 2021-06-17
                  • 2015-07-07
                  • 2013-12-02
                  • 1970-01-01
                  • 2013-08-27
                  • 2015-07-20
                  相关资源
                  最近更新 更多