我正在制作我应用的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吗?
答案 0 :(得分:4)
PIL(python图像库)动态导入其插件,py2exe没有接收,因此它不包含.exe文件中的插件。
修复(希望!)是在你的一个.py文件中明确地导入驱动程序
import Image
import PngImagePlugin
Image._initialized=2
这意味着py2exe肯定会包含该插件。 Image._initialized
位会停止PIL扫描以获取更多插件。
Here are the docs完整地解释了这一点
答案 1 :(得分:2)
这是什么平台? 最近我觉得他们改进了windows上的png支持, 所以你正在使用的pygtk的版本也是相关的。 http://aruiz.typepad.com/siliconisland/2008/02/goodbye-zlib-li.html
答案 2 :(得分:2)
确保在安装应用程序时捆绑加载器。 Py2exe不会知道这些,但它们是GTK所需的部分,并且存在于其他GTK“数据”文件中。
来自http://unpythonic.blogspot.com/2007/07/pygtk-py2exe-and-inno-setup-for-single.html
仅仅制作是不够的 py2exe拉入GTK DLLs 包装(它做得很漂亮 成功)。 GTK还需要一个 包含的数据文件数 主题,翻译等。这些将 需要手动复制到 dist目录使应用程序 可以在跑步时找到它们。
如果您查看GTK运行时内部 目录(通常是这样的 c:\ GTK)你会发现的 目录:share等,lib。你会 需要将所有这些复制到 运行py2exe后的dist目录。
版权保留。