Версия GT2 приложения py2exe не может читать файлы png - PullRequest
0 голосов
/ 03 октября 2009

Я работаю над созданием версии моего приложения py2exe. Py2exe не удается скопировать некоторые Модули в. Мое оригинальное приложение загружает .png файлы нормально, но версия exe не:

Traceback (most recent call last):
  File "app.py", line 1, in <module>
    from gui.main import run
  File "gui\main.pyc", line 14, in <module>

  File "gui\controllers.pyc", line 10, in <module>

  File "gui\utils\images.pyc", line 78, in <module>
    ☺
  File "gui\utils\images.pyc", line 70, in GTK_get_pixbuf
    ☺§☺▲☻
  File "gui\utils\images.pyc", line 38, in PIL_to_pixbuf

gobject.GError: Image type 'png' is not supported

Есть идеи, что я должен заставить py2exe включить?

Ответы [ 3 ]

4 голосов
/ 03 октября 2009

Это известная проблема с PIL и py2exe

PIL (библиотека изображений Python) динамически импортирует свои плагины, которые py2exe не использует, поэтому он не включает плагины в файл .exe.

Исправление (надеюсь!) Состоит в том, чтобы импортировать драйверы, как это явно, в один из ваших .py файлов

import Image
import PngImagePlugin
Image._initialized=2

Это будет означать, что py2exe обязательно будет включать плагин. Бит Image._initialized останавливает сканирование PIL для получения дополнительных плагинов.

Вот документы из вики py2exe, объясняющие это полностью

2 голосов
/ 16 октября 2009

Убедитесь, что вы связываете загрузчики при установке приложения. Py2exe не будет знать об этом, но они являются необходимой частью GTK и живут там, где живут остальные файлы данных GTK.

С http://unpythonic.blogspot.com/2007/07/pygtk-py2exe-and-inno-setup-for-single.html

Недостаточно просто сделать py2exe вытащить в библиотеки GTK для упаковка (что делает довольно успешно). GTK также требует количество файлов данных, которые включают темы, переводы и т. д. необходимо вручную скопировать в каталог dist, чтобы приложение может найти их во время бега.

Если вы загляните внутрь своей среды выполнения GTK каталог (обычно что-то вроде c: \ GTK) вы найдете каталоги: поделиться и т. д., lib. Ты сможешь нужно скопировать все это в каталог dist после запуска py2exe.

Авторские права сохранены.

2 голосов
/ 03 октября 2009

Какая это платформа? В последнее время я думаю, что они улучшили поддержку PNG на Windows, так что версия pygtk, которую вы используете, также подходит. http://aruiz.typepad.com/siliconisland/2008/02/goodbye-zlib-li.html

...