2013-03-06 4 views
10

Я пытаюсь получить образец heatmap.py от: http://jjguy.com/heatmap/"IOError: декодер зип не доступен": Ubuntu Python PIL

#image.py 
import heatmap 
import random 

if __name__ == "__main__":  
    pts = [] 
    for x in range(400): 
     pts.append((random.random(), random.random())) 

    print "Processing %d points..." % len(pts) 

    hm = heatmap.Heatmap() 
    img = hm.heatmap(pts) 
    img.save("classic.png") 

и я получаю эту ошибку:

Processing 400 points... 
Traceback (most recent call last): 
    File "/home/ec2usr/workspace/image/image.py", line 14, in <module> 
    img.save("classic.png") 
    File "/usr/local/lib/python2.7/dist-packages/PIL/Image.py", line 1437, in save 
    save_handler(self, fp, filename) 
    File "/usr/local/lib/python2.7/dist-packages/PIL/PngImagePlugin.py", line 572, in _save 
    ImageFile._save(im, _idat(fp, chunk), [("zip", (0,0)+im.size, 0, rawmode)]) 
    File "/usr/local/lib/python2.7/dist-packages/PIL/ImageFile.py", line 481, in _save 
    e = Image._getencoder(im.mode, e, a, im.encoderconfig) 
    File "/usr/local/lib/python2.7/dist-packages/PIL/Image.py", line 399, in _getencoder 
    raise IOError("encoder %s not available" % encoder_name) 
IOError: encoder zip not available 

Отработка Eclipse на Ubuntu 12 (64-битной) системе с Python 2.7.

Я нахожу libz.so в обоих/usr/lib и/usr/lib/x86_64-linux-gnu/просто отлично. Я пробовал эти решения уже без результата:

PIL says it has "support available" but still gives IOError when saving files

About the PIL Error -- IOError: decoder zip not available

IOError: "decoder zip not available" using matplotlib PNG in ReportLab on Linux, works on Windows

http://www.foxhop.net/ubuntu-python-easy_install-pil-does-not-install-zlib-support

Я потянув меня за волосы над этим в течение нескольких дней и значительно цените чью-либо помощь!

Установка Вход из питона-визуализации:

[email protected]:/usr/lib$ sudo apt-get install python-imaging 
Reading package lists... Done 
Building dependency tree 
Reading state information... Done 
The following packages were automatically installed and are no longer required: 
    account-plugin-identica account-plugin-twitter gir1.2-messagingmenu-1.0 
    hplip-data libgtkspell-3-0 libqt4-designer libqt4-help libqt4-scripttools 
    libqt4-svg libqt4-test libqtassistantclient4 libsane-hpaio 
    linux-headers-3.5.0-21 linux-headers-3.5.0-21-generic python-debtagshw 
    python-lxml python-pexpect python-piston-mini-client python-qt4 
    python-renderpm python-reportlab python-reportlab-accel python-sip 
    software-center-aptdaemon-plugins ubuntu-extras-keyring 
Use 'apt-get autoremove' to remove them. 
Suggested packages: 
    python-imaging-doc python-imaging-dbg 
The following NEW packages will be installed: 
    python-imaging 
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 
Need to get 0 B/294 kB of archives. 
After this operation, 996 kB of additional disk space will be used. 
Selecting previously unselected package python-imaging. 
(Reading database ... 189302 files and directories currently installed.) 
Unpacking python-imaging (from .../python-imaging_1.1.7-4build1_amd64.deb) ... 
Setting up python-imaging (1.1.7-4build1) ... 
[email protected]:/usr/lib$ 

журнала от установки (питон установки setup.py из изображений):

PIL 1.1.7 SETUP SUMMARY 
-------------------------------------------------------------------- 
version  1.1.7 
platform  linux2 2.7.3 (default, Sep 26 2012, 21:51:14) 
       [GCC 4.7.2] 
-------------------------------------------------------------------- 
--- TKINTER support available 
*** JPEG support not available 
--- ZLIB (PNG/ZIP) support available 
*** FREETYPE2 support not available 
*** LITTLECMS support not available 

selftest.py:

-------------------------------------------------------------------- 
PIL 1.1.7 TEST SUMMARY 
-------------------------------------------------------------------- 
Python modules loaded from ./PIL 
Binary modules loaded from /usr/local/lib/python2.7/dist-packages 
-------------------------------------------------------------------- 
*** PIL CORE support not installed 
*** TKINTER support not installed 
--- JPEG support ok 
--- ZLIB (PNG/ZIP) support ok 
*** FREETYPE2 support not installed 
*** LITTLECMS support not installed 
-------------------------------------------------------------------- 
+0

Вы имели 'libz.so' там при установке PIL? – wRAR

+0

Я так считаю, но я также повторно нарисовал яйцо PIL с sudo apt-get build-dep python-imaging впоследствии, на всякий случай. – cmacdona101

+0

обновление: .tif работает нормально; png и jpg не работают. – cmacdona101

ответ

9

I просто столкнулся с аналогичной проблемой, вызванной наличием как PIL (установленного через установщик python pip), так и python-ima пакет ging, установленный через apt-get. Когда я удалил дополнительную версию из pip, которая разрешила ее для меня.

Если вы установили PIL из источника или используете pip, у вас может быть такая же проблема.

Когда я строил PIL, я также обнаружил, что мне нужно было связать библиотеки с/usr/lib. Это может привести к устранению неподдерживаемых сообщений в вашем журнале выше.

sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib 
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 
7

Я помню, что я пришел к тому же решению, что и Крис при установке PIL на 64-битных системах.

Однако в настоящее время я бы рекомендовал использовать подушку (подушку для установки подушки) вместо PIL. Подушка - это просто вилка PIL с более частыми выпусками и меньшими проблемами, такими как тот, который вы испытываете.

Если вы на Ubuntu Я думаю, что вам нужно zlib1g-DEV и libjpeg-DEV установлен Перед установкой PIL/подушки, так что вы получите поддержку JPEG/PNG построен в.

+0

Здесь, чтобы подтвердить, что вам необходимо установить зависимости перед установкой PIL/Pillow, чтобы процесс установки выполнял правильные шаги компиляции. –

+0

Это был правильный ответ для меня, и он работает на Ubuntu 12.04 и 14.04 как с python 2.7, так и с 3.4 – ThatAintWorking

1

Хотя мой PIL был я решил это на Ubuntu 12.04 с:

pip uninstall PIL 
pip install PIL 
0

даже вы проверяете с

from PIL import image

хорошо, но есть еще ошибка сохранения/методы декодирования.

вы можете попробовать свои действия (базу в моем случае, OpenERP 7 с убунту 13.10)

  1. удалить питон изображение
  2. найти ваш libz
  3. переустанавливать PIL

проверить его http://febru.soluvas.com/2014/03/solved-openerp-7-ioerror-decoder-zip.html

2

Это сработало Отлично подходит для меня:

apt-get install libjpeg62 libjpeg62-dev zlib1g-dev libfreetype6 libfreetype6-dev 

В x86_64:

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

В i386:

ln -s /usr/lib/i386-linux-gnu/libz.so /usr/lib/ 
ln -s /usr/lib/i386-linux-gnu/libfreetype.so.6 /usr/lib/ 
ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib/ 


pip install -U PIL --allow-external PIL --allow-unverified PIL 
pip install -I pillow 
Смежные вопросы