运行 `pip install` 的 Ubuntu 出现错误“无法构建以下必需的软件包:* freetype”

Posted

技术标签:

【中文标题】运行 `pip install` 的 Ubuntu 出现错误“无法构建以下必需的软件包:* freetype”【英文标题】:Ubuntu running `pip install` gives error 'The following required packages can not be built: * freetype' 【发布时间】:2013-12-30 06:28:00 【问题描述】:

在执行pip install -r requirements.txt 时,在安装matplotlib 的阶段出现以下错误:

REQUIRED DEPENDENCIES AND EXTENSIONS
                 numpy: yes [not found. pip may install it below.]
              dateutil: yes [dateutil was not found. It is required for date
                        axis support. pip/easy_install may attempt to
                        install it after matplotlib.]
               tornado: yes [tornado was not found. It is required for the
                        WebAgg backend. pip/easy_install may attempt to
                        install it after matplotlib.]
             pyparsing: yes [pyparsing was not found. It is required for
                        mathtext support. pip/easy_install may attempt to
                        install it after matplotlib.]
                 pycxx: yes [Couldn't import.  Using local copy.]
                libagg: yes [pkg-config information for 'libagg' could not
                        be found. Using local copy.]
              freetype: no  [pkg-config information for 'freetype2' could
                        not be found.]

...

The following required packages can not be built:

                    * freetype

pip install -r requirements.txt 不应该也安装 freetype 吗?应该如何在 Ubuntu 12.04 中安装 freetype 以便它可以与 matplotlib 一起使用?

【问题讨论】:

【参考方案1】:

没有。 pip 不会安装系统级依赖项。这意味着pip 不会安装 RPM(基于 Redhat 的系统)或 DEB(s)(基于 Debian 的系统)。

要安装系统依赖项,您需要根据您的系统使用以下方法之一。

Ubuntu/Debian:

apt-get install libfreetype6-dev

在基于 Ubuntu/Debian 的系统上搜索软件包:

apt-cache search <string>

例如:

apt-cache search freetype | grep dev

Redhat/CentOS/Fedora:

yum -y install freetype-devel

在基于 Redhat/CentOS/Fedora 的系统上搜索软件包:

yum search <string>

例如:

yum search freetype | grep devel

Mac OS X:通过Homebrew

brew install freetype

在基于 Mac OS X 的系统上搜索软件包:

brew search <string>

例如:

brew search freetype

【讨论】:

抱歉,这几天叫freetype2。已更新。 apt-get install freetype2-devel 也给出了同样的错误......难道是apt-get install freetype*?那似乎要安装许多其他软件包 这可能也行 :) 抱歉,我相信它叫libfreetype2-devel。我会再次更新我的答案:/ 我认为-devel 约定适用于 RPM,-dev 约定适用于 DEB。试试apt-cache search '^libfreetype.*-dev$' 得到libfreetype6-dev fwiw, brew install freetype 在 OSX 上帮助了我【参考方案2】:

我必须安装 libxft-dev 才能在 ubuntu 服务器 14.04 上启用 matplotlib。

sudo apt-get install libfreetype6-dev libxft-dev

然后我可以使用

sudo easy_install matplotlib

【讨论】:

在 Ubuntu 12.04 LTS 上,我还需要安装 libxft-dev。感谢您提供这些额外信息 为什么不直接使用这里推荐的 sudo apt-get install python-matplotlib :matplotlib.org/users/installing.html 我已经安装了 libfreetype6-dev。这对我在 ubuntu 14.10 上有所帮助,谢谢! libxft-dev 是为我做的!谢谢! 显然,这里真正的依赖是pkg-configlibxft-dev 也作为依赖安装。所以,正确的答案是运行apt-get install libfreetype6-dev pkg-config【参考方案3】:

一种解决方法是执行sudo apt-get install pkg-config,我找到了in this github issue。

【讨论】:

安装pkg-config 对我来说也是缺少的不直观的步骤,这是在将matplotlib 安装在以ubuntu:14.04 作为基础映像的docker 容器中时。 这也为我在 virtualbox VM 上修复了它。看起来pkg-config 是虚拟机安装所需要的。【参考方案4】:

现有的答案都不适合我在 Ubuntu 上升级 matplotlib。这最终对我有用:

$ sudo apt-get install build-dep python-matplotlib
$ pip install matplotlib --upgrade

【讨论】:

【参考方案5】:

此命令将下载所有依赖项。

对于 python 2.x

sudo apt-get install python-matplotlib

对于 python 3.x

sudo apt-get install python3-matplotlib

安装后可以试试

(sudo) pip install matplotlib

【讨论】:

【参考方案6】:

在 Ubuntu 上,我安装了 blt-dev 包后它就可以工作了。

$sudo apt-get install blt-dev
$pip install matplotlib

【讨论】:

blt-dev 需要apt-get install libfreetype6-dev 才能运行,因此它会与 blt-dev 一起自动安装。【参考方案7】:

我正在使用 Mint,这些答案都不适合我,我需要:

sudo apt-get install build-essential g++

【讨论】:

【参考方案8】:

我在 Windows 上使用 Python 3.6 时遇到了同样的问题,但后来我切换到 Python 3.5.2 并且一切正常。

【讨论】:

【参考方案9】:

这个命令 sudo apt-get install libfreetype6-dev 在 ubuntu 16.04 上对我来说失败了,The following packages have unmet dependencies: libfreetype6-dev : Depends: libfreetype6 (= 2.6.1-0.1ubuntu2) but 2.6.1-0.1ubuntu2.3 is to be installed

所以我从source下载了安装的freetype,感谢guide

$ tar -xvjf freetype-x.y.tar.bz2  # extract the downloaded version file
$ cd freetype-x.y/ 
$ ./configure
$ make
$ sudo make install 

切换到 virtualenv 和 pip install matplotlib,一切正常。

【讨论】:

以上是关于运行 `pip install` 的 Ubuntu 出现错误“无法构建以下必需的软件包:* freetype”的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu更换pip install,apt-get,conda install 成国内源

pip install py-find-1st 在 ubuntu20 和 centos 上使用 python3.9 失败

pip install / pytz 版本冲突?

ubuntu不能安装pip unable to install pip in unbuntu

ubuntu下pip3 install 模块缓慢解决方案

ubuntu18.04 install pip