Fehler beim Installieren der Python-Bildbibliothek mit pip unter Mac OS X 10.9

78

Ich möchte PIL mit pip auf Mavericks installieren, erhalte aber diesen Fehler.

_imagingft.c:73:10: fatal error: 'freetype/fterrors.h' file not found
#include <freetype/fterrors.h>
         ^
1 error generated.
error: command 'cc' failed with exit status 1

Meine Befehlszeilentools sind installiert und auf dem neuesten Stand, und jeder Hinweis, den ich gefunden habe, hat nicht geholfen. Wie kann ich das kompilieren lassen?

EDIT: Ich habe gerade überprüft, Freetype ist auch bereits über Homebrew installiert

Lukas Spieß
quelle
Sie benötigen freetypeÜberschriften.
devnull
Ja, das habe ich erraten;) Ich habe auch gerade einen Weg gefunden, dies zu lösen.
Lukas Spieß

Antworten:

210

Gehen Sie folgendermaßen vor, anstatt eine Verknüpfung zu einer bestimmten Version von freetype2 herzustellen:

ln -s /usr/local/include/freetype2 /usr/local/include/freetype

Dies erspart Ihnen die Mühe, den Symlink bei jedem Upgrade von freetype2 neu zu erstellen.

mcuelenaere
quelle
1
Nach der Verwendung sudo easy_install PILstoße ich auf dieses Problem. Ihre Lösung funktioniert wie ein Zauber! Vielen Dank!
Spiralmond
3
Dies
behebt
Ich hatte freetype2 bereits verlinkt, es kann am besten sein, das Original zu verlinken, das sich unter /usr/local/Cellar/freetype/2.5.5/include/freetype2
Salyangoz
1
@Salyangoz: / usr / local / include / freetype2 ist ein Symlink zu /usr/local/Cellar/freetype/2.5.5/include/freetype2 (erstellt von Homebrew). Wenn Sie dies anstelle des eigentlichen Pfads verwenden, hat dies bei einem Upgrade den Vorteil, dass es weiterhin funktioniert.
Mcuelenaere
2
Freetype2 war nicht auf meinem Computer mit El Capitan installiert, daher musste ich es ausführen, brew install freetypebevor ich diesen Symlink
erstellen konnte
31

Mit macports die Lösung, die für mich funktioniert hat:

sudo port install freetype
sudo ln -s /opt/local/include/freetype2 /opt/local/include/freetype

Führen Sie dann den PIL-Erstellungsprozess erneut aus.

Mike Fogel
quelle
Dies funktionierte für mich, als ich auf Außenseiter upgraden danke
Mo J. Mughrabi
arbeitete für mich an Yosemite während des Upgrades auf cocos2dx v3.3 von 2.2
andrewz
28

Ich habe dieses Problem mit diesem Symlink gelöst:

ln -s /usr/local/Cellar/freetype/2.5.1/include/freetype2 /usr/local/include/freetype

Ich habe Freetype bereits über Homebrew installiert.

Dmitry Akinin
quelle
5

Dies wird durch eine Änderung der Header von freetype> = 2.1.5 verursacht. PIL verwendet nicht die korrekt dokumentierte Methode zum Einschließen der Freetype-Header, was dazu führt, dass der Build fehlschlägt, nachdem Freetype die lange veraltete Methode zum Einschließen der Header endgültig entfernt hat. Dieses Problem ist ganz oben auf http://freetype.sourceforge.net/freetype2/docs/tutorial/step1.html dokumentiert :

ANMERKUNG: Ab FreeType 2.1.6 wird das alte Einschlussschema für Header-Dateien nicht mehr unterstützt. Dies bedeutet, dass Sie jetzt eine Fehlermeldung erhalten, wenn Sie Folgendes tun:

#include <freetype / freetype.h>
#include <freetype / ftglyph.h>

Bitte bringen Sie dieses Problem zu den Entwicklern von PIL und empfehlen Sie ihnen, die dokumentierte Methode zum Einfügen von Freetype-Headern zu verwenden:

#include <ft2build.h>
#include FT_ERRORS_H

Neverpanic
quelle
4

Nach vielen Versuchen habe ich dieses Problem beim Kompilieren der PIL ohne Freetype-Unterstützung gelöst. Dazu habe ich einfach die Verknüpfung zu meinem $ PATH mit brew unlink freetypeund dann aufgehoben pip install PIL==1.1.7.

Diegofleury
quelle
Was ist überhaupt Freetype? :)
Stantonk
3

Ich habe dies gerade mit den in dieser Stackoverflow-Antwort beschriebenen Schritten gelöst . Dies scheint Xcodes Fehler bei der Installation von Freetype an fremden Orten zu sein.

Lukas Spieß
quelle
2

In meinem OSx habe ich die .hDatei in /opt/local/include/freetype2direcoty gefunden. Also tippe ich

sudo ln -s /opt/local/include/freetype2/ /usr/local/include/freetype

Es klappt

Vielleicht ist der beste Weg, /opt/local/includeden Include-Pfad Ihres Clangs zu erweitern.

Schlag dein Herz
quelle
1

osx yosemite, das hat bei mir funktioniert:

(virtualenv)

$ ln -s /opt/local/include/freetype2/ /usr/local/include/freetype2
$ pip install pil==1.1.7 --allow-external pil --allow-unverified pil
Ilja
quelle
Lief nur die erste Zeile, dann funktionierte dies für mich auf Yosemite. Konntepip install PIL
Aaron Ash
0

Ich verwende Arch Linux und hatte dieses Problem. In meinem Fall musste die Zip-Datei manuell von https://pypi.python.org/pypi/Pillow/2.2.1#downloads heruntergeladen und entpackt werden . Ich habe dann die Datei bearbeitet _imagingft.c, um den Include-Pfad von freetype/fterrors.hin zu ändern , fterrors.hda es kein freetypeUnterverzeichnis gab, in /usr/include/freetype2dem sich fterrors.hbefand. Endlich hat es gut python setup.py installfunktioniert.

Bearbeiten: Ich sollte erwähnen, dass dies die Lösung für die Installation von Pillow war, nicht von PIL, aber Pillow ist nur eine Abzweigung von PIL und kann möglicherweise auch für andere mit diesem Problem angewendet werden.

Beau
quelle
0

Wenn Sie immer noch nach Antworten suchen, wie ich es nach dem Lesen dieses und anderer Googeln war, könnte es Sie interessieren, dies zu sehen:

Warnung

Pillow> = 2.1.0 unterstützt "import _imaging" nicht mehr. Verwenden Sie stattdessen "from PIL.Image import core as _imaging".

von hier

Wenn Sie dies lesen, wird sich die Seite wahrscheinlich geändert haben, aber der Text wird zumindest noch hier sein.

volvox
quelle