Установка ПИЛ с пипом

349

Я пытаюсь установить PIL (библиотеку изображений Python) с помощью команды:

sudo pip install pil

но я получаю следующее сообщение:

Downloading/unpacking PIL
  You are installing a potentially insecure and unverifiable file. Future versions of pip will default to disallowing insecure files.
  Downloading PIL-1.1.7.tar.gz (506kB): 506kB downloaded
  Running setup.py egg_info for package PIL
    WARNING: '' not a valid package name; please use only.-separated package names in setup.py

Installing collected packages: PIL
  Running setup.py install for PIL
    WARNING: '' not a valid package name; please use only.-separated package names in setup.py
    --- using frameworks at /System/Library/Frameworks
    building '_imaging' extension
    clang -fno-strict-aliasing -fno-common -dynamic -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -mno-fused-madd -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch x86_64 -pipe -IlibImaging -I/System/Library/Frameworks/Python.framework/Versions/2.7/include -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c _imaging.c -o build/temp.macosx-10.8-intel-2.7/_imaging.o
    unable to execute clang: No such file or directory
    error: command 'clang' failed with exit status 1
    Complete output from command /usr/bin/python -c "import setuptools;__file__='/private/tmp/pip_build_root/PIL/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-AYrxVD-record/install-record.txt --single-version-externally-managed:
    WARNING: '' not a valid package name; please use only.-separated package names in setup.py

running install

running build

.
.
.
.

copying PIL/XVThumbImagePlugin.py -> build/lib.macosx-10.8-intel-2.7

running build_ext

--- using frameworks at /System/Library/Frameworks

building '_imaging' extension

creating build/temp.macosx-10.8-intel-2.7

creating build/temp.macosx-10.8-intel-2.7/libImaging

clang -fno-strict-aliasing -fno-common -dynamic -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -mno-fused-madd -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch x86_64 -pipe -IlibImaging -I/System/Library/Frameworks/Python.framework/Versions/2.7/include -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c _imaging.c -o build/temp.macosx-10.8-intel-2.7/_imaging.o

unable to execute clang: No such file or directory

error: command 'clang' failed with exit status 1

----------------------------------------
Cleaning up

Не могли бы вы помочь мне установить PIL?

user3006710
источник
Вы установили Xcode, а затем установили инструменты командной строки Xcode? Похоже, у вас нет компилятора Clang.
Fiver

Ответы:

586
  1. Установите инструменты командной строки Xcode и Xcode, как указано выше.
  2. Вместо этого используйте подушку, так как PIL в основном мертв. Подушка - это ухоженная вилка PIL.

https://pypi.python.org/pypi/Pillow/2.2.1

pip install Pillow

Если у вас установлены оба Pythons и вы хотите установить это для Python3:

python3 -m pip install Pillow
FogleBird
источник
5
clangКогда я попробовал это, я получил сообщение об ошибке на OSX Mavericks, но обнаружил, что этот ответ помог с этим: stackoverflow.com/a/22322645/16959
Джейсон Сперске
34
Хотя это правильный и полезный ответ, он на самом деле не отвечает на вопрос. Для тех из нас, кто находится в процессе восстановления старых проектов, которые могут потребовать заполнения зависимости PIL просто для того, чтобы мы могли найти следующую вещь, которая сломается, нам фактически нужно получить фактическую зависимость (а иногда даже нужно получить конкретную версию что кто то взломал)
Namey
3
@Namey Портирование существующего кода PIL на подушку может быть легко сделано . Порт ПИЛ в Подушка . Подушка основана на коде PIL и превратилась в лучшую, современную и более дружественную версию PIL.
GiriB
7
@GiriB Спасибо за обновление. Моя главная мысль заключалась в том, что часто бывают случаи, когда вы начинаете работу над неким унаследованным рабочим кодом, когда существует 20 древних зависимостей, одной из которых может быть PIL, и вам нужно что-то отладить, чтобы внести исправления в производственный код. В этом случае вам, безусловно , не нужно писать порты для кода, подключенного к ~ 10 различным библиотекам вашей сборки dev, только чтобы начать отладку однострочной ошибки, возникающей в производственной среде. Надеюсь, это проясняет.
Namey
Я пытаюсь использовать библиотеку, которая использует import Image. Есть ли способ получить подушку, чтобы предоставить изображение?
AnnanFay
60

Это работает для меня:

apt-get install python-dev
apt-get install libjpeg-dev
apt-get install libjpeg8-dev
apt-get install libpng3
apt-get install libfreetype6-dev
ln -s /usr/lib/i386-linux-gnu/libfreetype.so /usr/lib
ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib
ln -s /usr/lib/i386-linux-gnu/libz.so /usr/lib

pip install PIL  --allow-unverified PIL --allow-all-external
madjardi
источник
9
На 64-битных платформах связанный путь должен быть другим - например, /usr/lib/x86_64-linux-gnu/libfreetype.so. Для более независимого от архитектуры решения создайте такие ссылки, как# ln -s /usr/lib/`uname -i`-linux-gnu/libfreetype.so /usr/lib/
Марк Чакериан,
Всегда одна и та же проблема для заголовков изображений: _imagingft.c: 73: 31: фатальная ошибка: freetype / fterrors.h: нет такого файла или каталога #include <freetype / fterrors.h> Так что вам нужно установить python-imaging через pip
c24b
Всегда проблема в заголовках freetype, как упомянуто здесь [ askubuntu.com/questions/507459/… ? РЕШЕНИЕ: cd / usr / include ln -s freetype2 freetype
c24b
1
под Ubuntu 14.04 необходима еще 1 символическая ссылка sudo ln -s /usr/include/freetype2 /usr/local/include/freetype
Акаша
1
хорошо сработал для меня секрет был --allow-unverified PIL --allow-all-external
eusoubrasileiro
54

С помощью apt install очень просто использовать эту команду, чтобы сделать это

sudo apt-get install python-PIL

или

sudo pip install pillow

или

sudo easy_install pillow
redchief
источник
2
не забудьте перезапустить свой сервер ноутбуков ipython, если вы его используете.
Шоупер
Судо установить подушку работал для меня. sudo apt-get установить python-PIL не сделал.
Ю Шен
1
Я обнаружил, что он чувствителен к регистру, поэтому: sudo apt-get install python-PIL => Сбой (пакет не найден) sudo apt-get install python-pil =>
Работает
35

В Mac OS X используйте эту команду:

sudo pip install https://effbot.org/media/downloads/Imaging-1.1.7.tar.gz
Райан Ли
источник
работал и над Debian jessy !, просто нужно было предварительно установить python-dev :)
Agey
1
Сначала я должен был установить libjpeg: brew install libjpeg
Pierre F
Наконец актуальное решение. Мой Mac не имеет apt-get: p, и я все равно хочу установить в virtualenv.
Судо
используйте sudo pip, установите подушку - как показано ниже.
johndpope
26

Я получил ответ от обсуждения здесь :

Я старался

pip install --no-index -f http://dist.plone.org/thirdparty/ -U PIL

и это сработало.

ismailsunni
источник
8
Попробуйте использовать это: pip install --no-index -f http://effbot.org/downloads/ -U PIL --trusted-host effbot.orgпричина, по которой я использовал этот, заключается в том, что это URL-адрес, указанный в пакете и на pypi.python.org/pypi/PIL
Том Мидделтын
1
Я получил предупреждение использовать HTTPS вместо HTTP. После изменения URL все работало замечательно.
AnnanFay
@TomMyddeltyn Это почти сработало, за исключением того, что я получил ошибку компилятора, когда он не может найти X11 / Xlib.h
Uncommon
@ Необычно Я не уверен, в чем проблема, извините.
Том Миддельтын
21

устанавливать

pip install Pillow

Затем просто импортируйте в ваш файл, как,

from PIL import Image

Я использую Windows. Это работает для меня.

ПРИМЕЧАНИЕ :

Подушка является функциональной заменой библиотеки изображений Python. Чтобы запустить существующий PIL-совместимый код с помощью Pillow, его необходимо изменить, чтобы импортировать модуль Imaging из пространства имен PIL вместо глобального пространства имен.

т.е. изменить:

import Image

чтобы:

from PIL import Image

https://pypi.org/project/Pillow/2.2.1/

Чандан Шарма
источник
Спасибо! Читая название «PIL», from PIL import Imageя никогда не мог предположить, что название этой библиотеки было «Подушка». Я также на Windows, и ваше решение сработало для меня.
Маркос Бурке
Подушка является функциональной заменой библиотеки изображений Python. Чтобы запустить существующий PIL-совместимый код с помощью Pillow, его необходимо изменить, чтобы импортировать модуль Imaging из пространства имен PIL вместо глобального пространства имен. Т.е. изменить: import Imageна from PIL import Image pypi.org/project/Pillow/2.2.1
Чандан Шарма
Спасибо за дополнительную информацию bckground!
Маркос Бурке
12

Я так понимаю, ты на Mac. См. Как я могу установить PIL на Mac OS X 10.7.2 Lion

Если вы используете [homebrew] [], вы можете установить PIL с помощью just brew install pil. Затем вам может понадобиться добавить каталог установки ( $(brew --prefix)/lib/python2.7/site-packages) к вашему PYTHONPATH или добавить местоположение самого каталога PIL в файле с именем PIL.pthfile в любом из ваших каталогов site-packages с содержанием:

/usr/local/lib/python2.7/site-packages/PIL

(предполагая , что brew --prefixэто/usr/local ).

В качестве альтернативы, вы можете просто скачать / собрать / установить его из исходного кода:

# download
curl -O -L http://effbot.org/media/downloads/Imaging-1.1.7.tar.gz
# extract
tar -xzf Imaging-1.1.7.tar.gz
cd Imaging-1.1.7
# build and install
python setup.py build
sudo python setup.py install
# or install it for just you without requiring admin permissions:
# python setup.py install --user

Я только что выполнил вышеизложенное (на OSX 10.7.2, с XCode 4.2.1 и System Python 2.7.1), и оно сработало просто отлично, хотя есть вероятность, что что-то в моей среде не по умолчанию.

[доморощенный]: http://mxcl.github.com/homebrew/ "доморощенный"

KGO
источник
Хотя это объясняет, как установить pil, но он не делает это через pipOP, как пытался изначально. Я нахожу обильное использование brewвокруг сети в наши дни неоптимальным. brewустановит довольно много накладных расходов, в зависимости от того, что вы хотите сделать. так pipчто, вероятно, все еще будет лучшим выбором для модулей Python.
mknaf
11

В наши дни все используют Pillow, дружественную вилку PIL, поверх PIL.

Вместо: sudo pip install pil

Делать: sudo pip install pillow

$ sudo apt-get install python-imaging
$ sudo -H pip install pillow
Дмитрий Плешков
источник
Я бы порекомендовал против когда-либо делать sudo pip install .... Это может привести к нарушению установки Python в вашей системе, что может повлиять на приложения вашей системы. Попробуйте использовать виртуальные среды Anaconda , venv или Docker.
n1k31t4
11

Для Ubuntu PIL больше не работает. Я всегда получаю:

Не найдено подходящего распределения для PIL

Так что установите Python-Imaging:

sudo apt-get install python-imaging
Анееш Р.С.
источник
6

У меня та же проблема, но она решается с установкой python-dev .

Перед установкой PIL выполните следующую команду:

sudo apt-get install python-dev

Затем установите PIL:

pip install PIL
Kedar.Aitawdekar
источник
10
Это не сработало для меня в Ubuntu 14. В pip install pilрезультате No distributions at all found for PILя установил python-dev или нет.
aliteralmind
5

У меня были некоторые ошибки во время установки. На всякий случай, если у кого-то это тоже есть. Несмотря на это я уже сидел под админом юзера, а не root.

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/PIL'

Storing debug log for failure in /Users/wzbozon/Library/Logs/pip.log

Добавление sudo решило проблему, с sudo это сработало:

~/Documents/mv-server: $ sudo pip install Pillow
Денис Кутлубаев
источник
5

Я перепробовал все ответы, но не смог. Непосредственно получить исходный код с официального сайта, а затем построить успешную установку.

  1. Перейти на сайт http://www.pythonware.com/products/pil/#pil117
  2. Нажмите «Python Imaging Library 1.1.7 Source Kit», чтобы загрузить исходный код
  3. tar xf Imaging-1.1.7.tar.gz
  4. cd Imaging-1.1.7
  5. sudo python setup.py install
ZhouPeng
источник
3

Я прибил это с помощью sudo port install py27-Pillow

Александр Симоеш
источник
3

Попробуй это:

sudo pip install PIL --allow-external PIL --allow-unverified PIL
Alfonso
источник
2
Хотя этот ответ может быть правильным, пожалуйста, добавьте некоторые пояснения. Передача базовой логики важнее, чем просто предоставление кода, потому что это помогает ОП и другим читателям самим решить эту и подобные проблемы.
CodeMouse92
Обратите внимание, что эта команда истекла для меня. Во всяком случае, это будет устарело через несколько недель. sudo pip install --allow-external --allow-unverified PIL PILможет также работать на данный момент.
Изучение статистики на примере
3
--allow-externalи --allow-unverifiedоба устарели. pip install pillowправильный ответ
Дориан
1
Ответ, который я разместил, был предложен мне stderr. Так что, хотя мой ответ уже устарел, я не написал его. Кроме того, я прошу прощения за мое сообщение, адресованное JasonMc92 (которое с тех пор было удалено). Мой тон был не в духе, но мои чувства остались. Есть что-то неприятное в троллинге на первой странице и копировании / вставке заметки о «передаче базовой логики». Возможно, вы гонитесь за бейджами, и я думаю, что это нормально, но ради последовательности, пожалуйста, оставьте комментарий ко всем другим подобным ответам на этот вопрос, которые не подкрепляют логику.
Альфонсо
3
  • Сначала вы должны запустить это, sudo apt-get build-dep python-imagingчто даст вам все зависимости, которые вам могут понадобиться

  • Тогда беги sudo apt-get update && sudo apt-get -y upgrade

  • С последующим sudo apt-get install python-pip

  • И, наконец, установить Пил pip install pillow

Тед Тейлор Лайф
источник
2

Поиск в диспетчере пакетов перед использованием pip. На Arch Linux вы можете получить PILpacman -S python2-pillow

хан тран
источник
0

Есть еще один пакетный инструмент Python под названием conda . Conda предпочтительнее (я полагаю), чем pip, когда есть библиотеки, которые должны установить C ++ и другие привязки, которые не являются чистым Python. Conda также включает в себя pip, поэтому вы можете использовать pip, но вы также получаете преимущества от conda.

Conda также устанавливает IPython , pil и многие другие библиотеки по умолчанию. Я думаю тебе понравится.

Chet
источник