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")
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):
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 .
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
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
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
A travaillé pour Ubuntu 12.10:
Sudo pip uninstall PIL
Sudo apt-get install libfreetype6-dev
Sudo apt-get install python-imaging
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
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.
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 !!
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
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!
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
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