Ubuntu z uruchomioną opcją „pip install” powoduje błąd „Nie można zbudować następujących wymaganych pakietów: * freetype”

145

Podczas wykonywania pip install -r requirements.txtotrzymuję następujący błąd na etapie instalacji 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

Nie powinno się pip install -r requirements.txtrównież instalować freetype? Jak należy zainstalować freetype w Ubuntu 12.04, aby działał matplotlib?

Athena Wisdom
źródło

Odpowiedzi:

221

Nie. pipNie zainstaluje zależności na poziomie systemu. Oznacza to, pipże nie zainstalujesz RPM (s) ( systemy oparte na Redhat ) lub DEB (s) ( systemy oparte na Debianie ).

Aby zainstalować zależności systemowe, będziesz musiał użyć jednej z następujących metod, w zależności od systemu.

Ubuntu / Debian:

apt-get install libfreetype6-dev

Aby wyszukać pakiety w systemach opartych na Ubuntu / Debian:

apt-cache search <string>

na przykład:

apt-cache search freetype | grep dev

Redhat / CentOS / Fedora:

yum -y install freetype-devel

Aby wyszukać pakiety w systemach opartych na Redhat / CentOS / Fedora:

yum search <string>

na przykład:

yum search freetype | grep devel

Mac OS X: ( przez Homebrew )

brew install freetype

Aby wyszukać pakiety w systemach opartych na Mac OS X:

brew search <string>

na przykład:

brew search freetype
Jamesa Millsa
źródło
Przepraszam, że ostatnio freetype2dzwoni Zaktualizowano.
James Mills,
apt-get install freetype2-develdaje ten sam błąd ... Czy to możliwe apt-get install freetype*? Wygląda na to, że chce zainstalować wiele innych pakietów
Athena Wisdom
To też prawdopodobnie zadziała :) Przepraszam, myślę, że to się nazywa libfreetype2-devel. Ponownie zaktualizuję moją odpowiedź: /
James Mills
2
Myślę, że -develkonwencja dotyczy RPM, a -devkonwencja DEB. Spróbuj, apt-cache search '^libfreetype.*-dev$'co daje libfreetype6-dev.
Dietrich Epp
9
fwiw, brew install freetypepomógł mi na OSX
Nate,
144

Musiałem zainstalować libxft-dev, aby włączyć matplotlib na serwerze ubuntu 14.04.

sudo apt-get install libfreetype6-dev libxft-dev

A potem mógłbym użyć

sudo easy_install matplotlib
Sudipta Basak
źródło
10
Na Ubuntu 12.04 LTS musiałem także zainstalować libxft-dev. Dzięki za te dodatkowe informacje
jutro
3
Dlaczego nie bezpośrednio użyć sudo apt-get install python-matplotlib zgodnie z zaleceniami tutaj: matplotlib.org/users/installing.html
Timo
2
Miałem już zainstalowane libfreetype6-dev. Pomogło mi to na Ubuntu 14.10, dzięki!
wim
4
libxft-dev jest tym, co zrobiło to dla mnie! dzięki!
TerminalDilettante
10
Najwyraźniej prawdziwą zależnością jest tutaj pkg-config, która libxft-devrównież instaluje się jako zależność. Tak więc właściwą odpowiedzią byłoby bieganieapt-get install libfreetype6-dev pkg-config
Carles Sala
28

Obejście polega na zrobieniu tego, sudo apt-get install pkg-configco znalazłem w tym problemie na githubie .

nie mylące
źródło
3
Instalacja pkg-configbyła dla mnie również brakującym nieintuicyjnym krokiem, podczas instalacji matplotlibw kontenerze docker z ubuntu:14.04obrazem podstawowym.
SlimJim
To również naprawiło to dla mnie również na wirtualnej maszynie wirtualnej. Wygląda na pkg-configto, że jest to potrzebne do instalacji maszyn wirtualnych.
Alma
6

Żadna z istniejących odpowiedzi nie pomogła mi w uaktualnieniu matplotlib w systemie Ubuntu. Oto, co ostatecznie działa dla mnie:

$ sudo apt-get install build-dep python-matplotlib
$ pip install matplotlib --upgrade
PaulMest
źródło
6

To polecenie pobierze wszystkie zależności.

W przypadku Pythona 2.x

sudo apt-get install python-matplotlib

W przypadku Pythona 3.x

sudo apt-get install python3-matplotlib

Po zainstalowaniu możesz spróbować

(sudo) pip install matplotlib
MiaeKim
źródło
4

W Ubuntu działało po zainstalowaniu blt-devpakietu.

$sudo apt-get install blt-dev
$pip install matplotlib
Caleb Kiage
źródło
blt-dev musi apt-get install libfreetype6-devdziałać, więc jest automatycznie instalowany wraz z blt-dev.
Tristan
1

Używam mięty i żadna z tych odpowiedzi nie zadziałała, musiałem:

sudo apt-get install build-essential g++
AndreL
źródło
1

Miałem ten sam problem z Pythonem 3.6 w systemie Windows, ale potem przeszedłem na Python 3.5.2 i wszystko działa dobrze.

klimenkov
źródło
0

To polecenie sudo apt-get install libfreetype6-devnie powiodło się na 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

Pobrałem więc ze źródła zainstalowaną wersję freetype , uznanie tego przewodnika

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

przełączony na virtualenv pip install matplotlibi wszystko działa.

StackEdd
źródło