2009-10-02 59 views
0

我正在制作我的应用程序的py2exe版本。 Py2exe未能在复制一些 模块我原来的应用程序加载.png文件,但是该exe版本不:py2exe'd版本的GTK应用程序无法读取PNG文件

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包括?

回答

2

这是什么平台? 最近我认为他们改进了windows上的png支持, ,所以你使用的pygtk版本也是相关的。 http://aruiz.typepad.com/siliconisland/2008/02/goodbye-zlib-li.html

+0

这是Python 2.5,我认为最新的pygtk版本 - 2.12.9。事情是,它正常工作;它只是失败,一旦我试图把它变成一个exe – Claudiu 2009-10-02 21:40:56

+0

啊,我看到它没有找到pixbuf加载程序模块文件的问题... – Claudiu 2009-10-02 21:45:46

+1

我猜你有旧版本需要zlib和libpng dll。你有没有指定那些包含? – pixelbeat 2009-10-02 21:47:52

4

这与PILpy2exe一个已知的问题

PIL(蟒图像库)出口它的插件动态其中py2exe不拿起上,因此它不包括在该.exe插件文件。

的修复(希望!)是明确导入司机这样在你的.py文件的一个

import Image 
import PngImagePlugin 
Image._initialized=2 

这将意味着py2exe肯定会包括该插件。 Image._initialized位停止PIL扫描以获取更多插件。

Here are the docs从py2exe维基解释这完全

+1

我怀疑这完全不相关。 – 2009-10-16 20:33:39

2

确保当您安装您的应用程序捆绑装载机。 Py2exe不会了解这些信息,但它们是GTK所需的一部分,并且生活在其他GTK“数据”文件所在的位置。

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

这是不够的只是让 py2exe拉在GTK的DLL的 包装(这相当不 成功)。 GTK还需要 数量的数据文件,其中包括 主题,翻译等。这些将 需要手动复制到 dist目录中,以便应用程序 可以在运行时找到它们。

如果你看看你的GTK运行 目录中(通常是这样 C:\ GTK),你会发现 目录:股等,LIB。在运行py2exe之后,您需要将所有这些文件复制到 dist目录中。

版权所有。

相关问题