2013-03-06 11 views
10

Sto cercando di ottenere il heatmap.py campione che va da: http://jjguy.com/heatmap/"IOError: decoder zip non disponibile": 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") 

e ottengo questo errore:

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 

Utilizzo di Eclipse su un sistema Ubuntu 12 (64 bit), con Python 2.7.

trovo libz.so sia in/usr/lib e/usr/lib/x86_64-linux-gnu/bene. Ho provato queste soluzioni già senza risultato:

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

Sono stato tirando fuori i miei capelli su questo per un paio di giorni e notevolmente apprezzare l'aiuto di nessuno!

Installare Log in pitone-imaging:

[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$ 

log da installare (python setup.py install da Imaging):

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

Hai avuto 'libz.so' lì quando è stato installato PIL? – wRAR

+0

Credo di sì, ma ho anche reintallato PIL egg con sudo apt-get python-imaging build-dep in seguito, per ogni evenienza. Aggiornamento – cmacdona101

+0

: .tif funziona bene; png e jpg non funzionano. – cmacdona101

risposta

9

I appena incontrato un problema simile causato dall'avere sia PIL (installato tramite il python pip installer) che python-ima pacchetto ging installato tramite apt-get. Quando ho rimosso la versione extra da pip che l'ha risolta per me.

Se si è installato PIL dalla sorgente o utilizzando pip, si potrebbe avere lo stesso problema.

Quando stavo costruendo PIL Ho anche scoperto che dovevo collegare sopra le librerie in/usr/lib. Questo potrebbe risolvere i messaggi non supportati nel tuo log qui sopra.

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

Ricordo di aver trovato la stessa identica soluzione di Kris durante l'installazione di PIL su sistemi a 64 bit.

Tuttavia al giorno d'oggi mi consiglia di utilizzare il cuscino (PIP installare cuscino) al posto del PIL. Pillow è semplicemente un fork di PIL con rilasci più frequenti e meno problemi come quello che stai vivendo.

Se siete su Ubuntu Penso che è necessario zlib1g-dev e libjpeg-dev installato prima di installare PIL/cuscino in modo da ottenere il supporto per jpeg/png costruito.

+0

Qui per confermare che è necessario installare le dipendenze prima di installare PIL/Pillow, quindi il processo di installazione esegue i passaggi di compilazione corretti. –

+0

Questa è stata la risposta corretta per me e funziona su Ubuntu 12.04 e 14.04 entrambi con python 2.7 e 3.4 – ThatAintWorking

1

Anche se la mia PIL era fino ad oggi, ho risolto questo su Ubuntu 12.04 con:

pip uninstall PIL 
pip install PIL 
2

Questo ha funzionato Perfettamente per me:

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

In 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 

In 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