web-dev-qa-db-fra.com

Erreur lors de l'installation de Python Bibliothèque d'images à l'aide de pip sur Mac OS X 10.9

Je souhaite installer PIL sur Mavericks à l'aide de pip, mais je reçois cette erreur.

_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

Mes outils de ligne de commande sont installés et à jour et chaque indice que j'ai trouvé n'a pas aidé. Comment puis-je obtenir cela pour compiler?

EDIT: je viens de vérifier, freetype est également déjà installé via homebrew

78
Lukas Spieß

Au lieu de créer un lien symbolique vers une version spécifique de freetype2, procédez comme suit:

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

Cela vous évite de recréer le lien symbolique chaque fois que vous mettez à niveau freetype2.

210
mcuelenaere

Avec macports, la solution qui a fonctionné pour moi:

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

Et puis réexécutez le processus de génération PIL.

31
Mike Fogel

J'ai résolu ce problème avec ce lien symbolique:

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

J'ai freetype déjà installé via homebrew aussi.

28
Dmitry Akinin

Cela est dû à un changement dans les en-têtes de freetype> = 2.1.5. PIL n'utilise pas la bonne méthode documentée pour inclure les en-têtes freetype, ce qui entraîne l'échec de la construction maintenant que freetype a finalement supprimé la manière obsolète d'inclure les en-têtes. Ce problème est documenté juste en haut de http://freetype.sourceforge.net/freetype2/docs/tutorial/step1.html :

REMARQUE: à partir de FreeType 2.1.6, l'ancien schéma d'inclusion de fichier d'en-tête n'est plus pris en charge. Cela signifie que vous obtenez maintenant une erreur si vous faites quelque chose comme ceci:

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

Veuillez apporter ce problème en amont aux développeurs de PIL et leur conseiller d'utiliser la manière documentée d'inclure des en-têtes freetype:

#include <ft2build.h>
#include FT_ERRORS_H

5
neverpanic

Après de nombreuses tentatives, j'ai résolu ce problème lors de la compilation du PIL sans prise en charge du type libre. Pour ce faire, j'ai simplement dissocié mon $ PATH en utilisant brew unlink freetype et alors, pip install PIL==1.1.7.

4
diegofleury

Je viens de résoudre ce problème en utilisant les étapes décrites dans this Stackoverflow answer. Il semble que ce soit la faute de Xcode pour l'installation de freetype dans des endroits étranges.

3
Lukas Spieß

Utilisez Pillow où ce problème est résolu "pour de vrai":

Et où vous pouvez signaler des problèmes et les voir traités en temps opportun:

3
aclark

Dans mon OSx, j'ai trouvé le fichier .h Dans le répertoire /opt/local/include/freetype2. Je tape

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

ça marche

La meilleure façon est peut-être d'ajouter /opt/local/include À votre chemin d'inclusion de clang.

2
blowyourheart

osx yosemite, cela a fonctionné pour moi:

(virtualenv)

$ ln -s /opt/local/include/freetype2/ /usr/local/include/freetype2
$ pip install pil==1.1.7 --allow-external pil --allow-unverified pil
1
Ilja

Si vous êtes toujours à la recherche de réponses comme je l'ai été après avoir lu ceci et d'autres recherches sur Google, vous pourriez être intéressé de voir ceci:

Attention

Pillow> = 2.1.0 ne prend plus en charge "import _imaging". Veuillez utiliser "à partir de PIL.Image import core as _imaging" à la place.

de ici

Au moment où vous lirez ceci, la page aura probablement changé, mais le texte sera toujours là au moins.

0
volvox

J'utilise Arch Linux et j'ai eu ce problème. Dans mon cas, j'ai dû télécharger et décompresser manuellement le fichier Zip à partir de https://pypi.python.org/pypi/Pillow/2.2.1#downloads . J'ai ensuite édité le fichier _imagingft.c pour changer le chemin d'inclusion de freetype/fterrors.h à fterrors.h car il n'y avait pas de sous-répertoire freetype de /usr/include/freetype2fterrors.h était situé. Finalement python setup.py install a bien fonctionné.

Edit: je dois mentionner que c'était la solution pour installer Pillow, pas PIL, mais Pillow n'est qu'une fourchette de PIL et il peut toujours être applicable à d'autres personnes ayant ce problème.

0
Beau