Python: модуль _imagingft C не установлен - PullRequest
70 голосов
/ 25 октября 2010

Я перепробовал множество решений, опубликованных в сети, они не работают.

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

Таким образом, система может найти _imaging, но все еще не может использовать шрифт 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)

Вызывает эту ошибку:

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

Ответы [ 14 ]

75 голосов
/ 24 апреля 2011

В Ubuntu перед компиляцией PIL вам нужно установить libfreetype-dev.

т.е.

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

PS! Запуск pip install от имени sudo обычно устанавливает пакеты в / usr / local / lib в большинстве версий Ubuntu. Вы можете установить Pil в виртуальной среде (virtualenv или venv) по пути, принадлежащему пользователю.

Вы можете также рассмотреть возможность установки подушки вместо pil, которая, я считаю, совместима с API: https://python -pillow.org .

56 голосов
/ 25 октября 2010

Ваш установленный PIL был скомпилирован без libfreetype.

Вы можете получить предварительно скомпилированный установщик PIL (скомпилированный с libfreetype) здесь (и многие другие предварительно скомпилированные модули Python C):

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

41 голосов
/ 13 сентября 2015

У меня в Ubuntu 14.04.1 работает 64 бит:

sudo apt-get install libfreetype6-dev

Затем в virtualenv:

pip uninstall pillow
pip install --no-cache-dir pillow
16 голосов
/ 12 мая 2013

решение для CentOS 6 (и, возможно, другие основанные на оборотах):

yum install freetype-devel libjpeg-devel libpng-devel

pip uninstall pil Pillow
pip install pil Pillow
14 голосов
/ 01 августа 2012

В OS X я сделал это, чтобы решить проблему:

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
12 голосов
/ 26 января 2013

Работал для Ubuntu 12.10:

sudo pip uninstall PIL
sudo apt-get install libfreetype6-dev
sudo apt-get install python-imaging
12 голосов
/ 21 августа 2012

Как правило, вам необходимо установить freetype перед установкой PIL.

Если вы используете Homebrew в OS X, это просто вопрос:

brew remove pil
brew install freetype
brew install pil
2 голосов
/ 18 марта 2014

Для меня ни одно из опубликованных здесь решений пока не работает. Я нашел другое решение здесь: http://codeinthehole.com/writing/how-to-install-pil-on-64-bit-ubuntu-1204/

Сначала установите пакеты dev:

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

Затем создайте несколько символических ссылок:

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

После этого PIL должен скомпилироваться очень хорошо:

$ pip install PIL --upgrade
2 голосов
/ 04 июня 2013

Следующие работы на 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

когда вы видите "- Доступна поддержка JPEG", это означает, что он работает.

Но, если он все еще не работает при редактировании изображения в формате JPEG, проверьте путь к питону !!
Мой путь к питону пропущен '/usr/local/lib/python2.7/dist-packages/PIL-1.1.7-py2.7-linux-x86_64.egg/', поэтому я редактирую ~/.bashrc и добавляю в этот файл следующий код:

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

тогда, наконец, это работает !!

2 голосов
/ 10 июля 2012

Для OS X (я работаю 10.6, но должен работать для других) Я смог обойти эту ошибку, используя совет этого поста .В основном вам нужно установить пару зависимостей, а затем переустановить PIL.

...