web-dev-qa-db-fra.com

Python: le module _imagingft C n'est pas installé

J'ai essayé beaucoup de solutions publiées sur le net, elles ne fonctionnent pas.

>>> import _imaging
>>> _imaging.__file__
'C:\\python26\\lib\\site-packages\\PIL\\_imaging.pyd'
>>>

Ainsi, le système peut trouver le _imaging mais ne peut toujours pas utiliser la police TrueType

from PIL import Image, ImageDraw, ImageFilter, ImageFont


im = Image.new('RGB', (300,300), 'white')
draw = ImageDraw.Draw(im)
font = ImageFont.truetype('arial.ttf', 14)
draw.text((100,100), 'test text', font = font)

Déclenche cette erreur:

ImportError: The _imagingft C module is not installed

File "D:\Python26\Lib\site-packages\PIL\ImageFont.py", line 34, in __getattr__
  raise ImportError("The _imagingft C module is not installed")
70
user483144

Votre PIL installé a été compilé sans libfreetype.

Vous pouvez obtenir le programme d'installation précompilé de PIL (compilé avec libfreetype) ici (et de nombreux autres modules précompilés Python C modules):

http://www.lfd.uci.edu/~gohlke/pythonlibs/

56
Imran

Sur Ubuntu, vous devez avoir installé libfreetype-dev avant de compiler PIL.

c'est à dire.

$ Sudo apt-get install libfreetype6-dev
$ Sudo -s
\# pip uninstall pil
\# pip install pil

PS! L'exécution de l'installation de pip en tant que Sudo installera généralement des packages dans/usr/local/lib sur la plupart des versions d'Ubuntu. Vous pouvez envisager d'installer Pil dans un environnement virtuel (virtualenv ou venv) dans un chemin appartenant à l'utilisateur à la place.

Vous pouvez également envisager d'installer pillow au lieu de pil, qui je crois est compatible avec l'API: https://python-pillow.org .

75
Sindre Myren

Les éléments suivants ont fonctionné pour moi sur Ubuntu 14.04.1 64 bits:

Sudo apt-get install libfreetype6-dev

Ensuite, dans le virtualenv:

pip uninstall pillow
pip install --no-cache-dir pillow
41
Rafay

solution pour CentOS 6 (et probablement d'autres rpm):

yum install freetype-devel libjpeg-devel libpng-devel

pip uninstall pil Pillow
pip install pil Pillow
16
fsw

Sous OS X, j'ai fait cela pour résoudre le problème:

pip uninstall PIL
ln -s /usr/X11/include/freetype2 /usr/local/include/
ln -s /usr/X11/include/ft2build.h /usr/local/include/
ln -s /usr/X11/lib/libfreetype.6.dylib /usr/local/lib/
ln -s /usr/X11/lib/libfreetype.6.dylib /usr/local/lib/libfreetype.dylib
pip install PIL
14
suzanshakya

A travaillé pour Ubuntu 12.10:

Sudo pip uninstall PIL
Sudo apt-get install libfreetype6-dev
Sudo apt-get install python-imaging
12
DmitrySandalov

Fondamentalement, vous devez installer freetype avant d'installer PIL.

Si vous utilisez Homebrew sur OS X, c'est juste une question de:

brew remove pil
brew install freetype
brew install pil
12
Roshambo

Pour OS X (j'utilise 10.6 mais devrait fonctionner pour les autres), j'ai pu contourner cette erreur en utilisant les conseils de cet article . Fondamentalement, vous devez installer quelques dépendances puis réinstaller PIL.

2
Bovard

Les travaux suivis sur Ubuntu 12.04:

pip uninstall PIL
apt-get install libjpeg-dev
apt-get install libfreetype6-dev
apt-get install zlib1g-dev
apt-get install libpng12-dev
pip install PIL --upgrade

lorsque vous voyez "- Prise en charge JPEG disponible" cela signifie que cela fonctionne.

Mais, si cela ne fonctionne toujours pas lorsque vous modifiez votre image jpeg, vérifiez le chemin python !!
Mon python manqué '/usr/local/lib/python2.7/dist-packages/PIL-1.1.7-py2.7-linux-x86_64.Egg/', donc je modifie le ~/.bashrc ajoutez le code suivant à ce fichier:

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/dist-packages/PIL-1.1.7-py2.7-linux-x86_64.Egg/

alors enfin ça marche !!

2
Jason Huang

Pour moi, aucune des solutions affichées jusqu'ici n'a fonctionné. J'ai trouvé une autre solution ici: http://codeinthehole.com/writing/how-to-install-pil-on-64-bit-ubuntu-1204/

Installez d'abord les packages de développement:

$ Sudo apt-get install python-dev libjpeg-dev libfreetype6-dev zlib1g-dev

Créez ensuite des liens symboliques:

$ Sudo ln -s /usr/lib/`uname -i`-linux-gnu/libfreetype.so /usr/lib/
$ Sudo ln -s /usr/lib/`uname -i`-linux-gnu/libjpeg.so /usr/lib/
$ Sudo ln -s /usr/lib/`uname -i`-linux-gnu/libz.so /usr/lib/

Ensuite, PIL devrait compiler très bien:

$ pip install PIL --upgrade
2
minzwurst

Dans mon Mac, les étapes suivantes dans le terminal fonctionnent:

$ brew install freetype
$ Sudo pip uninstall pil
$ Sudo pip install pillow

espère que cela fonctionne pour vous. Bonne chance!

1
Yun.Lu

Ubuntu 11.10 installe les bibliothèques zlib et freetype2 en suivant la spécification multi-Arch (par exemple /usr/lib/i386-linux-gnu). Vous pouvez utiliser des variables d'environnement de configuration PIL pour qu'il puisse les trouver. Cependant, cela ne fonctionne que sur les versions PIL au-delà de la balise pil-117.

export PIL_SETUP_ZLIB_ROOT=/usr/lib/i386-linux-gnu
export PIL_SETUP_FREETYPE_ROOT=/usr/lib/i386-linux-gnu
pip install -U PIL

Puisque votre chemin multi-Arch peut être différent (x86-64), il est préférable d'installer le -dev packages et utilisation pkg-config pour récupérer le chemin correct.

pkg-config --variable=libdir zlib
pkg-config --variable=libdir freetype2

Une autre façon donnée par Barry sur setup.py de Pillow est d'utiliser dpkg-architecture -qDEB_Host_MULTIARCH pour obtenir le suffixe de répertoire de bibliothèque approprié.

Voir https://bitbucket.org/effbot/pil-2009-raclette/issue/18

1
milton

J'ai utilisé homebrew pour installer le freetype et j'ai les éléments suivants dans/usr/local/lib:

libfreetype.6.dylib libfreetype.a libfreetype.dylib

Mais l'habituel:

pip installer pil

Ne fonctionne pas pour moi, j'ai donc utilisé:

installation de pip http://effbot.org/downloads/Imaging-1.1.6.tar.gz

1
tc_geophysics