pil png activestate на windows 7 Поддержка ZLIB (PNG/ZIP) недоступна
Я пытаюсь портировать программу на Python с OS X на Windows 7. Эта программа обрабатывает png с помощью tkinter, например
self.logoImg = ImageTk.PhotoImage(Image.open('GrowthPathLogo.png'))
Код ошибки с IOError: декодер zip недоступен
Я пытался установить pip с pypm. Затем я пытаюсь построить его с помощью пипа. В конце процесса сборки сообщается, что png/zlib не поддерживается
Я получаю те же ошибки при установке python.org в Windows.
Я застрял и не умею создавать библиотеки на Си. Я также не знаю, как работает пипс. У меня установлена библиотека gnu zlib, но она совсем не помогает. У меня установлен Visual C++ 2008 Express, и по крайней мере это работает, потому что pip успешно компилирует вещи.
2 ответа
Попробуйте здесь сборку, которую поддерживает Кристоф Гольке. Для сборки PIL вам понадобятся несколько библиотек, как указано в README: libjpeg, zlib, freetype2 и littleCMS. Прочитайте USAGE.txt в http://zlib.net/zlib125-dll.zip для получения инструкций по связыванию с zlib с помощью Visual C++ или MinGW.
Я знаю, что это старый вопрос, но я хотел дать ответ, если люди столкнутся с той же проблемой, что и я.
Сборки Кристофа Гольке потрясающие, когда они работают. Однако для моей машины win7 с python 2.7 и, самое главное, 64-битной, нет предварительно скомпилированного двоичного файла с поддержкой PNG (поддержка zlib). Подушка 64bit Binary на этой странице не работает при установке easy_install и не может быть установлена на моем компьютере.
Поэтому, если вы хотите решить эту проблему, а бинарный файл не работает, вам нужно собрать Pillow самостоятельно с поддержкой zlib. Для этого вам нужно скачать последнюю версию Подушки. Измените в файле setup.py строку ZLIB_ROOT, указав:
ZLIB_ROOT = './zlib'
Теперь вам нужно собрать zlib для win64 bit, это сложная часть. Загрузите последнюю версию zlib с их сайта (я тестировал 1.2.5/1.2.8). Откройте командную строку для 64-разрядной Visual Studio (ОЧЕНЬ ВАЖНО). Моя командная строка называлась VS2012 x64 Cross Tools Command Prompt.
Перейдите к исходному каталогу zlib и запустите:
nmake -f win32/Makefile.msc
Если это не работает, попробуйте:
nmake -f win32/Makefile.msc AS=ml64 LOC="-DASMV -DASMINF" OBJA="inffasx64.obj gvmat64.obj inffas8664.obj"
Теперь у вас должны быть в исходном каталоге следующие файлы:
zlib.h
zconf.h
zutil.h (not sure this is needed)
zlib.lib
zdll.lib
Скопируйте их в исходный каталог Pillow, в каталог "zlib"
Compile Pillow, используя "python setup.py build_ext -i"
Установите подушку, используя "python setup.py install"
Подушка теперь должна работать с поддержкой ZLIB (png). Если у вас есть более старые установки Pillow/PIL, вам может потребоваться вручную скопировать _imaging.pyd и _imagingmath.pyd в папку установки пакета вашего python или виртуальной среды, чтобы убедиться, что у вас есть только что скомпилированные.
Теперь вы можете импортировать _imaging и у вас есть поддержка PNG.
Вы также можете добавить Libjpeg таким же образом, компилируя его вручную, если это необходимо.
Надеюсь, что это помогает любому, кто сталкивается с этой проблемой.