Ошибка установки pip Подушки на Ubuntu virtualenv

43

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

Версия

PIP: 1.5.4

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

Спасибо

  • 1
    у вас установлен python-dev (команда: sudo apt-get установить python-dev)?
  • 0
    да у меня установлен python-dev
Теги:
pip
virtualenv
pillow

9 ответов

8
Лучший ответ

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

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

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

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

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

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

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

Мой случай немного отличался, так как в моем Ubuntu 15.04 отсутствовал также libjpeg, поэтому каждый раз установка не удалась. Видимо, иногда подушка не может найти нужную библиотеку, и самый простой способ исправить это - установить версию dev и связать ее с пользовательскими библиотеками. Редактировать: также работает в 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

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

  • 3
    Я установил libjpeg-dev , который вытащил libjpeg62-turbo-dev на мой малиновый пи (Raspbian Jessie). Это работает с подушкой 3.1.0.
  • 0
    Это отлично сработало для меня :)
Показать ещё 4 комментария
38

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

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

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

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

edit: Это немного длинный комментарий, но на самом деле не ответ. При необходимости изменится.

  • 0
    Это хорошо, как ответ! sudo apt-get install python-dev устранил проблему на моем Ubuntu 12.04. Никаких других шагов не требуется. (Это локальный VirtualBox, а не образ Amazon EC2.)
  • 4
    Во многих из этих случаев установка пакета python-dev для конкретной версии Python, которую вы используете в virtenv является ключевым ... Для меня v3.3 для этого проекта сработало: sudo apt-get install python3.3-dev ... +1
Показать ещё 3 комментария
22

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

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

Начиная с версии 3.0.0 Подушка нуждается в libjpeg...

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

pip install pillow==2.9.0

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

Удачи!

  • 0
    Кажется, не работает с Python 3.4, Linux 3.13.0-147
  • 0
    В чем именно ваша ошибка?
10

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

pip install Pillow==2.9.0

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

  • 0
    Я попытался установить libjpeg8-dev согласно ответу Mr.Coffee; не работал Пробовал устанавливать python3.4-dev; не работал Использование версии 2.9 сработало.
  • 0
    Я тоже столкнулся с той же проблемой ..... С вашим решением я смог установить подушку .... Спасибо, приятель.
4

Ubuntu 16.04 virtualenv

pip install pillow==2.9.0
2

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

sudo apt-get install build-dep python-imaging
0

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

yum install python-devel
0

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню