Ubuntu executando `pip install` fornece erro 'Os seguintes pacotes necessários não podem ser construídos: * freetype'

145

Ao executar pip install -r requirements.txt, recebo o seguinte erro durante o estágio em que está instalando 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.txtTambém não deve instalar o tipo livre? Como o freetype deve ser instalado no Ubuntu 12.04 para que ele funcione matplotlib?

Athena Wisdom
fonte

Respostas:

221

No. pipnão instalará dependências no nível do sistema. Isto significa pipque não instalará RPM (s) ( sistemas baseados em Redhat ) ou DEB ( sistemas) ).

Para instalar dependências do sistema, você precisará usar um dos seguintes métodos, dependendo do seu sistema.

Ubuntu / Debian:

apt-get install libfreetype6-dev

Para procurar pacotes em sistemas baseados no Ubuntu / Debian:

apt-cache search <string>

por exemplo:

apt-cache search freetype | grep dev

Redhat / CentOS / Fedora:

yum -y install freetype-devel

Para procurar pacotes nos sistemas baseados no Redhat / CentOS / Fedora:

yum search <string>

por exemplo:

yum search freetype | grep devel

Mac OS X: ( via Homebrew )

brew install freetype

Para procurar pacotes em sistemas baseados no Mac OS X:

brew search <string>

por exemplo:

brew search freetype
James Mills
fonte
Desculpe, é chamado freetype2hoje em dia. Atualizada.
James Mills
apt-get install freetype2-develdá o mesmo erro também ... Poderia ser apt-get install freetype*? Isso parece querer instalar muitos outros pacotes
Athena Wisdom
Isso provavelmente também funcionará :) Desculpe, acredito que seja chamado libfreetype2-devel. Vou atualizar minha resposta novamente: /
James Mills
2
Eu acho que a -develconvenção é para RPM e a -devconvenção é para DEB. Tente o apt-cache search '^libfreetype.*-dev$'que dá libfreetype6-dev.
Dietrich Epp 12/12
9
fwiw, brew install freetypeme ajudou no OSX
Nate
144

Eu tive que instalar o libxft-dev para ativar o matplotlib no servidor ubuntu 14.04.

sudo apt-get install libfreetype6-dev libxft-dev

E então eu poderia usar

sudo easy_install matplotlib
Sudipta Basak
fonte
10
No Ubuntu 12.04 LTS, eu também precisava instalar o libxft-dev. Obrigado por esta informação extra
toom
3
Por que não usar diretamente o sudo apt-get install python-matplotlib, conforme recomendado aqui: matplotlib.org/users/installing.html
Timo
2
Eu já tinha o libfreetype6-dev instalado. Isso me ajudou no ubuntu 14.10, obrigado!
Wim
4
a coisa libxft-dev é o que fez por mim! obrigado!
TerminalDilettante
10
Aparentemente, a dependência real aqui é pkg-config, que libxft-devtambém é instalada como uma dependência. Portanto, a resposta correta seria a de executarapt-get install libfreetype6-dev pkg-config
Carles Sala
28

Uma solução alternativa é o sudo apt-get install pkg-configque encontrei nesta edição do github .

não confuso
fonte
3
a instalação também pkg-configfoi a etapa não intuitiva que faltava para mim, isso ao instalar matplotlibem um contêiner de docker com ubuntu:14.04a imagem de base.
precisa saber é o seguinte
Isso também corrigiu para mim também em uma VM de caixa virtual. Parece pkg-configque é necessário para instalações de máquinas virtuais.
Alma
6

Nenhuma das respostas existentes funcionou para mim para atualizar o matplotlib no Ubuntu. Isto é o que finalmente funciona para mim:

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

Este comando fará o download de todas as dependências.

Para python 2.x

sudo apt-get install python-matplotlib

Para python 3.x

sudo apt-get install python3-matplotlib

Após a instalação, você pode tentar

(sudo) pip install matplotlib
MiaeKim
fonte
4

No Ubuntu, funcionou depois que eu instalei o blt-devpacote.

$sudo apt-get install blt-dev
$pip install matplotlib
Caleb Kiage
fonte
O blt-dev precisa apt-get install libfreetype6-devser executado para ser instalado automaticamente com o blt-dev.
Tristan
1

Estou usando o Mint e nenhuma dessas respostas funcionou para mim, eu precisava:

sudo apt-get install build-essential g++
AndreL
fonte
1

Eu tive o mesmo problema com o Python 3.6 no Windows, mas depois mudei para o Python 3.5.2 e tudo funciona bem.

klimenkov
fonte
0

Este comando sudo apt-get install libfreetype6-devfalhou para mim no 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

Então eu baixei o tipo livre instalado da fonte , creditando este guia

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

mudou para virtualenv ee pip install matplotlibtudo está funcionando.

StackEdd
fonte