Ошибка при установке pip Pillow на Ubuntu virtualenv

У меня есть экземпляр ec2, и изначально в моем virtualenv была установлена ​​Pillow 2.0. Каким-то образом, когда я попытался обновить его до Pillow 2.5, мне не удалось получить следующее сообщение. Ошибка такая же, даже после того, как я полностью удалил Pillow перед переустановкой. (Так что теперь у меня вообще нет Pillow в моем virtualenv)

$ pip install Pillow
....
....
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Qunused-arguments -Qunused-arguments -fPIC -DHAVE_LIBJPEG -DHAVE_LIBZ -DHAVE_LIBTIFF -I/usr/include/freetype2 -I/home/andycheng/realprice/env/build/pillow/libImaging -I/home/andycheng/realprice/env/include -I/usr/include/tcl8.5 -I/usr/local/include -I/usr/include -I/usr/include/python2.7 -I/usr/include/x86_64-linux-gnu -c libImaging/RawDecode.c -o build/temp.linux-x86_64-2.7/libImaging/RawDecode.o

gcc: error: unrecognized option ‘-Qunused-arguments’

gcc: error: unrecognized option ‘-Qunused-arguments’

....
....
gcc: error: build/temp.linux-x86_64-2.7/libImaging/XbmEncode.o: No such file or directory

gcc: error: build/temp.linux-x86_64-2.7/libImaging/ZipDecode.o: No such file or directory

gcc: error: build/temp.linux-x86_64-2.7/libImaging/ZipEncode.o: No such file or directory

gcc: error: build/temp.linux-x86_64-2.7/libImaging/TiffDecode.o: No such file or directory

gcc: error: build/temp.linux-x86_64-2.7/libImaging/Incremental.o: No such file or directory

gcc: error: build/temp.linux-x86_64-2.7/libImaging/Jpeg2KDecode.o: No such file or directory

gcc: error: build/temp.linux-x86_64-2.7/libImaging/Jpeg2KEncode.o: No such file or directory

gcc: error: unrecognized option ‘-Qunused-arguments’

gcc: error: unrecognized option ‘-Qunused-arguments’

error: command 'gcc' failed with exit status 1

----------------------------------------
Cleaning up...
Command /home/andycheng/realprice/env/bin/python -c "import setuptools, tokenize;__file__='/home/andycheng/realprice/env/build/Pillow/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-U8jA_X-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/andycheng/realprice/env/include/site/python2.7 failed with error code 1 in /home/andycheng/realprice/env/build/Pillow

Я не знаю, связано ли это, но в логе много gcc: error: build/temp.linux-x86_64-2.7/_imaging.o: No such file or directory ошибок. И gcc: error: unrecognized option ‘-Qunused-arguments’ тоже много.

Я могу установить Pillow 2.5 с моим корневым доступом, но тогда он не будет установлен в моем virtualenv.

sudo pip install Pillow  # this works but wrong directory
pip install -I Pillow==2.0  # gives the same error and would not install

Версии

ПИП: 1.5.4

Linux: Ubuntu 12.04.4 LTS (все пакеты обновлены)

Спасибо


person Andy    schedule 09.07.2014    source источник
comment
у вас установлен python-dev (команда: sudo apt-get install python-dev)?   -  person ruddra    schedule 09.07.2014
comment
да, у меня установлен python-dev   -  person Andy    schedule 10.07.2014


Ответы (9)


Мой случай был немного другим, так как в моей Ubuntu 15.04 отсутствовал также libjpeg, поэтому установка каждый раз не удалась. По-видимому, иногда подушка не может найти нужную библиотеку, и самый простой способ исправить это — установить версию для разработчиков и связать ее с пользовательскими библиотеками. Изменить: также работает в Ubuntu 16.04

sudo apt-get install python-dev
sudo apt-get install libjpeg8-dev
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib

pip install pillow

Частичное решение найдено здесь

person Mr.Coffee    schedule 07.11.2015
comment
Я установил libjpeg-dev, который потянул libjpeg62-turbo-dev на мой raspberry pi (Raspbian Jessie). Это работает с подушкой 3.1.0. - person beruic; 02.02.2016
comment
Если вы используете python3, то обязательно sudo apt-get install python3-dev (помните 3) - person Michael Plautz; 16.01.2017
comment
‹sudo apt-get install libjpeg8-dev› решил проблему установки pip для меня и на raspberry pi (Jessie Version 8) - person user1299661; 20.07.2018
comment
Потрясающий. Работает как шарм в Raspbian - person user9869932; 05.12.2018
comment
для Debian 10, py3.9 мне помогло: sudo apt-get install python3-dev libjpeg-dev - person mirek; 01.12.2020

Обратите внимание для себя и всех остальных: для компиляции в Elementary OS Luna (Ubuntu 12.04) требуется установка заголовков python, необходимых для вашей версии python virtualenv, в соответствии с комментариями к ОП. Я использую версию Python по умолчанию и тестирую 3.4 (через deadsnakes ppa), поэтому для меня это было:

sudo apt-get install python-dev
sudo apt-get install python3.4-dev

НО! Я все еще получал ту же ошибку! Я проверил свой .bashrc на ответ ОП, у меня не было подходящих экспортов. Затем меня осенило, я какое-то время устранял неполадки, и из ответа где-то еще я пытался установить их и не перезапускал bash.

Так что не забудьте перезапустить (или перезагрузить, я полагаю) bash, чтобы убедиться, что ваш экспорт соответствует .bashrc!

edit: Это немного длинно для комментария, но на самом деле это не ответ. При необходимости переделаю.

person nighliber    schedule 01.10.2014
comment
Это нормально как ответ! sudo apt-get install python-dev устранил проблему на моем компьютере с Ubuntu 12.04. Никаких других шагов не требуется. (Однако это локальный VirtualBox, а не образ Amazon EC2.) - person Peterino; 20.11.2014
comment
Во многих из этих случаев ключом является установка пакета python-dev для конкретной версии Python, которую вы используете в своем virtenv... Для меня версия 3.3 для этого проекта сработала: sudo apt-get install python3.3-dev ... +1 - person nicorellius; 17.12.2014
comment
sudo apt-get install python3.5-dev работал на Ubuntu 16.10 (гном). - person musicformellons; 27.04.2016
comment
sudo apt-get install python3.4-dev работает на Ubuntu 14.04 - person gorantq; 23.09.2016

У меня тоже была такая же головная боль...

Решение было найдено после прочтения документов, в которых говорится:

Начиная с версии 3.0.0 для Pillow требуется libjpeg...

Итак, попробуйте предыдущий:

pip install pillow==2.9.0

(Он работает для Python 2.6 и выше)

Удачи!

person ilyas Jumadurdyew    schedule 25.11.2015
comment
Не работает с Python 3.4, Linux 3.13.0-147 - person Nemo; 29.10.2018

Новая версия 3.0 не работает, нам нужно установить версию 2.9.0, которая работает с Django. Сделайте это, находясь внутри виртуальной среды:

pip install Pillow==2.9.0

Это должно работать и в Ubuntu, я использую Elementary OS.

person Marcos R. Guevara    schedule 07.11.2015
comment
Я попытался установить libjpeg8-dev в соответствии с ответом Mr.Coffee; не работал. Пробовал установить python3.4-dev; не работал. Использование версии 2.9 работало. - person CoderGuy123; 22.01.2016
comment
Я тоже столкнулся с той же проблемой ..... С вашим решением я смог установить подушку .... Спасибо, приятель. - person fear_matrix; 18.05.2016

Наконец-то я нашел ответ на эту головную боль!

Оказывается, у меня есть две настройки флага в моем .bashrc:

export CFLAGS=-Qunused-arguments                                    
export CPPFLAGS=-Qunused-arguments

.bashrc был скопирован с моего Macbook Pro, и эти два флага были необходимы для обхода XCODE. Кажется, что они сломаются в линуксе.

После удаления этих двух флагов pip install Pillow работает как положено.

Спасибо всем за помощь.

person Andy    schedule 10.07.2014
comment
Да! Спасибо! Это была такая непонятная ошибка для меня. Я перешел с Mac на Ubuntu, и некоторые из пакетов, которые я устанавливал (а именно, virtualenvburrito), были в основном ориентированы на пользователей Mac, поэтому я полагаю, что они каким-то образом вставили эти флаги в мою среду. Чтобы исправить это, я добавил следующие две строки в свой .bashrc: export CFLAGS='' export CPPFLAGS='' - person Spike; 29.01.2018

Ubuntu 16.04 виртуальная среда

pip install pillow==2.9.0
person Yao Qian    schedule 02.05.2016

Возможно, вам потребуется установить заголовки разработки Python.

sudo apt-get install build-dep python-imaging
person Jun    schedule 20.06.2016

В Fedora установка rpm-build решила эту проблему для меня. Убедитесь, что у вас также установлены python-devel и libjpeg-devel.

person syntagma    schedule 17.07.2016

На моей машине с CentOS мне пришлось:

yum install python-devel
person Raptor    schedule 26.10.2016