"IOError: zip zip недоступен": Ubuntu Python PIL
Я пытаюсь получить образец heatmap.py, запускаемый из:
http://jjguy.com/heatmap/
#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 говорит, что у него есть "поддержка доступна" но все же дает IOError при сохранении файлов
Об ошибке PIL - IOError: zip недоступен
IOError: "декодер zip недоступен" используя matplotlib PNG в ReportLab для Linux, работает в Windows
http://www.foxhop.net/ubuntu-python-easy_install-pil-does-not-install-zlib-support
Я тянул свои волосы за это несколько дней и очень признателен за помощь!
Установить журнал из python-изображений:
[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$
журнал из установки (python install setup.py из 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
--------------------------------------------------------------------
Ответы
Ответ 1
Я столкнулся с аналогичной проблемой, вызванной наличием как PIL (установленного через установщик python pip), так и пакета python-изображений, установленного через 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
Ответ 2
Я помню, как я пришел к тому же решению, что и Крис при установке PIL на 64-битных системах.
Однако в настоящее время я бы рекомендовал использовать подушку (подушку для установки подушек) вместо PIL. Подушка - это просто вилка PIL с более частыми выпусками и меньше проблем, чем тот, который вы испытываете.
Если вы на Ubuntu, я думаю, вам нужно, чтобы zlib1g-dev и libjpeg-dev устанавливали до установку PIL/Pillow, чтобы вы получили поддержку jpeg/png.
Ответ 3
Это сработало отлично для меня:
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
Ответ 4
Несмотря на то, что мой PIL был в курсе событий, я решил это на Ubuntu 12.04:
pip uninstall PIL
pip install PIL
Ответ 5
даже вы тестируете с помощью
из изображения импорта PIL
в порядке, но по методам сохранения/декодирования все еще есть ошибка.
вы можете попробовать мои шаги: (база на моем случае, openerp 7 с ubuntu 13.10)
- удалить изображение python
- найдите свой libz
- переустановить PIL
проверить http://febru.soluvas.com/2014/03/solved-openerp-7-ioerror-decoder-zip.html