Ответ 1
Установленный PIL был скомпилирован без libfreetype.
Здесь вы можете получить предварительно скомпилированный установщик PIL (скомпилированный с помощью libfreetype) (и многие другие предварительно скомпилированные модули Python C):
Я пробовал много решений, размещенных в сети, они не работают.
>>> 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")
Установленный PIL был скомпилирован без libfreetype.
Здесь вы можете получить предварительно скомпилированный установщик PIL (скомпилированный с помощью libfreetype) (и многие другие предварительно скомпилированные модули Python C):
В Ubuntu вам необходимо установить libfreetype-dev перед компиляцией PIL.
то есть.
$ 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) на пути, принадлежащем пользователю.
Вы также можете рассмотреть возможность установки подушки вместо пилота, который, я считаю, совместим с API: https://python-pillow.org.
Следующее работало для меня на Ubuntu 14.04.1 64 бит:
sudo apt-get install libfreetype6-dev
Затем в virtualenv:
pip uninstall pillow
pip install --no-cache-dir pillow
для CentOS 6 (и, возможно, других основанных на rpm):
yum install freetype-devel libjpeg-devel libpng-devel
pip uninstall pil Pillow
pip install pil Pillow
В 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
В принципе, вам необходимо установить freetype перед установкой PIL.
Если вы используете Homebrew для OS X, это просто вопрос:
brew remove pil
brew install freetype
brew install pil
Работает на Ubuntu 12.10:
sudo pip uninstall PIL
sudo apt-get install libfreetype6-dev
sudo apt-get install python-imaging
Для OS X (я запускаю 10.6, но должен работать для других) я смог обойти эту ошибку, используя совет этого сообщения. В основном вам нужно установить пару зависимостей, а затем переустановить PIL.
Следование работает над 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-изображение, проверьте путь python!
Мой путь к python пропустил '/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/
тогда, наконец, он работает!!
Для меня ни одно из решений, размещенных здесь до сих пор, не сработало. Я нашел другое решение здесь: 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
Я использовал homebrew для установки freetype, и у меня есть следующее в /usr/local/lib:
libfreetype.6.dylib libfreetype.a libfreetype.dylib
Но обычный:
pip install pil
Не работает для меня, поэтому я использовал:
pip install http://effbot.org/downloads/Imaging-1.1.6.tar.gz
В моем Mac работают следующие шаги в терминале:
$ brew install freetype
$ sudo pip uninstall pil
$ sudo pip install pillow
надеется, что это сработает для вас. Удачи!
Ubuntu 11.10 устанавливает библиотеки zlib и freetype2 в соответствии с многоуровневой спецификацией (например, /usr/lib/i386-linux-gnu
). Вы можете использовать переменные среды настройки PIL, чтобы они могли их найти. Однако он работает только с версиями PIL за тегом 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
Поскольку ваш многоадресный путь может быть другим (x86-64), рекомендуется установить пакеты -dev
и использовать pkg-config
для получения правильного пути.
pkg-config --variable=libdir zlib
pkg-config --variable=libdir freetype2
Другой способ, данный Barry on Pillow setup.py, заключается в использовании dpkg-architecture -qDEB_HOST_MULTIARCH
для получения суффикса соответствующего каталога библиотеки.
【】 решена
В моем ubuntu12.04, после того, как я установил python-визуализацию с помощью apt-get, он работает.