2010-10-25 27 views
69

He intentado muchas soluciones que se publicaron en la red, no funcionan.Python: El módulo _imagingft C no está instalado

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

que el sistema pueda encontrar el _imaging pero todavía no se puede utilizar fuentes 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) 

Eleva este error:

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") 

Respuesta

55

Su PIL instalado fue compilado sin libfreetype.

Puede obtener instalador precompilado del PIL (compilado con libfreetype) aquí (y muchos otros precompilado Python C Módulos):

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

+4

¿Funcionaría en Linux? Solo vi archivos .exe: < – user483144

+1

. Si quieres binarios de Linux, deberás obtenerlos del repositorio de software de tu distribución, supongo. – Imran

+0

Esto era exactamente lo que necesitaba para obtener soporte TTF en Windows. Los archivos binarios de PIL en la página oficial estaban teniendo problemas de sxs al cargar _imagingft.pyd. ¡Gracias! –

69

En Ubuntu, es necesario tener libfreetype-dev instalado antes de compilar PIL .

decir

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

PS! Ejecutar pip install como sudo generalmente instalará paquetes en/usr/local/lib en la mayoría de las versiones de Ubuntu. Puede considerar instalar Pil en un entorno virtual (virtualenv o venv) en una ruta propiedad del usuario.

También puede considerar la instalación de almohada en lugar de pil, que creo que es compatible con API: https://python-pillow.org.

+0

¡Muchas gracias! ¡Me ayudó al instante! –

+0

Hay un error en "aptitude install aptitude install";) – anders

+11

Esto no funciona para mí (Ubuntu 12.04, pip 1.1.7, Python 2.7). Desinstalé pip, apitude instaló libfreetype6-dev, luego ejecuté 'sudo pip install --upgrade pil', pero el problema persiste. –

0

Ubuntu 11.10 instala bibliotecas zlib y freetype2 siguiendo la especificación multi-arco (por ejemplo, /usr/lib/i386-linux-gnu). Puede usar variables de entorno de configuración PIL para que pueda encontrarlas. Sin embargo, solo funciona en las versiones de PIL más allá de la etiqueta 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 

Debido a que su ruta multi-arch puede ser diferente (x86-64), es preferible instalar los paquetes -dev y utilizar pkg-config para recuperar la ruta correcta.

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

Otra forma dada por Barry en setup.py de almohada es utilizar dpkg-architecture -qDEB_HOST_MULTIARCH para obtener el correcto sufijo directorio de la biblioteca.

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

2

Para OS X (10.6 estoy corriendo, pero debería funcionar para otros) que era capaz de conseguir alrededor de este error mediante el asesoramiento de this post. Básicamente, necesitas instalar un par de dependencias y luego reinstalar PIL.

14

En OS X, lo hice para resolver el problema:

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 
+1

No funcionó para mí, después de cada línea 'ln -s ...' Obtuve 'ln: /usr/local/lib/libfreetype.dylib: File exists'. El problema persiste ¿Tienes más ideas? – scubbo

+0

¿Intentarías 'ln -sf'? 'f' sobrescribe los archivos existentes, así que asegúrese de hacer una copia de seguridad de los archivos existentes. – suzanshakya

+0

Acabo de probar 'ln -sf', como se recomienda. Después de la primera línea, obtuve 'ln:/usr/local/include // freetype2: Operation not allowed'. Repetir la operación con 'sudo' dio el mismo error. – scubbo

12

Básicamente, es necesario instalar freetype antes de instalar PIL.

Si está utilizando Homebrew en OS X es sólo una cuestión de:

brew remove pil 
brew install freetype 
brew install pil 
+0

Si no funciona, agregue 'brew link freetype' antes de instalar PIL. – user805627

+1

también el paquete se llama 'freetype' para usuarios de macports. – DanH

+1

Tuve que reinstalar 'freetype' y' libjpeg' mediante brew y luego volver a vincularlos usando 'brew link --overwrite freetype' y' brew link --overwrite libjpeg', luego reinstalé 'pil', luego finalmente funcionó. Espero que esto ayude a nadie – rednaw

12

Trabajado para Ubuntu 12.10:

sudo pip uninstall PIL 
sudo apt-get install libfreetype6-dev 
sudo apt-get install python-imaging 
+0

funcionó perfectamente, ¡gracias! –

+2

Cambié la tercera línea de "sudo apt-get install python-imageing" a "pip install PIL" y funcionó. – zephyr

+0

Funcionó para mí, ubuntu12.04, django1.7, gracias! –

16

solución para CentOS 6 (y probablemente otra rpm basa):

yum install freetype-devel libjpeg-devel libpng-devel 

pip uninstall pil Pillow 
pip install pil Pillow 
+0

use el primer comando para instalar * devel y luego instale python-imageing usando "yum" (en el repositorio epel) para obtener la imagen mostrada . – fanchyna

2

La siguieron obras en 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 

cuando su sede "- el apoyo JPEG disponible "eso significa que funciona.

Pero, si aún no funciona cuando edite su imagen JPEG, ¡compruebe la ruta de Python!
mi camino pitón perdidas '/usr/local/lib/python2.7/dist-packages/PIL-1.1.7-py2.7-linux-x86_64.egg/', así que editar el ~/.bashrc agregue el código siguiente a este archivo:

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

luego, finalmente, funciona !!

1

que utiliza para instalar homebrew freetype y tengo la siguiente en// local/lib usr:

libfreetype.6.dylib libfreetype.a libfreetype.dylib

Pero el habitual:

pip install pil

no funciona para mí, así que utiliza:

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

+0

la segunda opción funcionó para mí. Gracias @tc_geophysics – MegaBytes

-1

【resuelto】
En mi ubuntu12.04, después de instalar python-imageing usando apt-get, funciona.

2

Para mí, ninguna de las soluciones publicadas aquí hasta ahora ha funcionado. He encontrado otra solución a este problema: http://codeinthehole.com/writing/how-to-install-pil-on-64-bit-ubuntu-1204/

Primero instalar los paquetes dev:

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

A continuación, crear algunos enlaces simbólicos:

$ 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/ 

Después PIL debe compilar bien:

$ pip install PIL --upgrade 
40

Lo siguiente funcionó para mí en Ubuntu 14.04.1 64 bit:

sudo apt-get install libfreetype6-dev 

Luego, en el virtualenv:

pip uninstall pillow 
pip install --no-cache-dir pillow 
+1

¡Gracias por el caché! Además, podemos eliminar el caché pip antes de volver a instalar Pillow: rm -rf ~/.cache/pip – Vermus

+2

Solo un comentario, en CentOS 6: yum install freetype-devel libjpeg-devel libpng-devel – azuax

1

En mi Mac, los pasos siguientes en el terminal funciona:

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

espera que funcione para usted. ¡Buena suerte!

Cuestiones relacionadas