pip install PIL -E TICKETS-1 - без поддержки JPEG / PNG - PullRequest
26 голосов
/ 04 октября 2011

Я использую Ubuntu и VitualEnv для своего проекта Django.

У меня установлена ​​библиотека PIL с помощью Synaptic Package Manager, и она работает нормально.Но когда я создаю VitrualEnv и пытаюсь установить PIL с помощью pip, он устанавливается, но я получаю странное поведение:

--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      linux2 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)
              [GCC 4.5.2]
--------------------------------------------------------------------
*** TKINTER support not available
*** JPEG support not available
*** ZLIB (PNG/ZIP) support not available
*** FREETYPE2 support not available
*** LITTLECMS support not available
--------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.

Я надеялся, что смогу использовать require.txt для всех моих зависимостей, но, возможно, это PILнадо как-то вручную устанавливать ... но как?

Редактировать: Спасибо Джон Киз , вы правы, я запускаю:

sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/

и после другогопопробуйте установить PIL, я получаю:

--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      linux2 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)
              [GCC 4.5.2]
--------------------------------------------------------------------
*** TKINTER support not available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
*** LITTLECMS support not available
-    -------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.

Редактировать: Вам может понадобиться установить libfreetype6-dev libjpeg8-dev

Редактировать: Еще один хороший вариант - использовать Подушка вместо PIL

Ответы [ 3 ]

9 голосов
/ 04 октября 2011

Эта тема на форумах Ubuntu охватывает эту тему.

6 голосов
/ 25 мая 2013

И на всякий случай, если вы используете virtualenv, вам не нужно создавать общесистемные символические ссылки, вот универсальный обходной путь, который работает на любой архитектуре:

ln -s /usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`/libz.so $VIRTUAL_ENV/lib/
ln -s /usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`/libfreetype.so $VIRTUAL_ENV/lib/
ln -s /usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`/libjpeg.so $VIRTUAL_ENV/lib/

И вам нужно выполнить эти строки в сеансе оболочки, активированной virtualenv, символические ссылки будут созданы внутри вашего каталога virtualenv lib.

Команда dpkg-architecture -qDEB_HOST_MULTIARCH используется для определения основного каталога системных библиотек (uname -i не надежна). А переменная окружения $VIRTUAL_ENV устанавливается скриптом virtualenv activate.

4 голосов
/ 19 июля 2012

Решение, которое нам подходит (начиная с PIL 1.7.7), - сначала удалить PIL, а затем Pillow, а затем pip install pillow --upgrade. Конечно, вам нужно установить libjpeg8-dev.

...