Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python py2exe版本的GTK应用程序无法读取png文件_Python_Image_Gtk_Pygtk_Py2exe - Fatal编程技术网

Python py2exe版本的GTK应用程序无法读取png文件

Python py2exe版本的GTK应用程序无法读取png文件,python,image,gtk,pygtk,py2exe,Python,Image,Gtk,Pygtk,Py2exe,我正在制作我的应用程序的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\controller

我正在制作我的应用程序的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包含什么吗?

这是什么平台? 最近我认为他们改进了windows上的png支持, 因此,您使用的pygtk版本也是相关的。

这是和的已知问题

PIL python映像库动态导入其插件,而py2exe不使用这些插件,因此它不在.exe文件中包含这些插件

希望修复!就是像这样在一个.py文件中显式导入驱动程序

import Image
import PngImagePlugin
Image._initialized=2
这意味着py2exe肯定会包含这个插件。图像。\ u初始化位停止PIL扫描更多插件


从py2exe wiki中完整地解释这一点

确保在安装应用程序时捆绑加载程序。Py2exe不知道这些,但它们是GTK所需的一部分,并且在GTK其余数据文件所在的位置存在

仅仅作出决定是不够的 py2exe将GTK DLL拉入 包装,它做的很漂亮 成功地GTK还需要一个 数据文件的数量,包括 主题、翻译等。这些将 需要手动复制到 dist目录,以便应用程序 可以在运行时找到它们

如果您查看GTK运行时内部 目录通常类似于 c:\GTK您将找到 目录:共享等,库。你会 需要将所有这些复制到 运行py2exe后的dist目录


版权所有。

它是Python 2.5,我认为最新的pygtk版本是2.12.9。问题是,它工作正常;一旦我尝试将其转换为EXE,它就会失败。我猜您的旧版本需要zlib和libpng DLL。你有没有指定要包含的内容?我自己才意识到。事实上,我没有——我如何告诉py2exe包含它们?或者我应该把它们手动复制到dst目录中吗?我怀疑这完全无关。