PyQt app:gif文件在用py2exe编译后没有显示

时间:2011-01-31 04:51:19

标签: python qt pyqt py2exe

出于某种原因,在我的系统上(Windows XP 32位,Python 2.6)PyQt能够在python解释器中运行时完美地显示gif,但是当我通过py2exe运行时,它们不再显示。

我已经尝试了我用Google搜索过的所有内容:将GIF DLL从PyQt复制到imageformats /文件夹,设置qt.conf(作为另一个建议的stackoverflow线程),完成setLibraryPaths到imageformat DLL所在的位置,复制来自http://wiki.wxpython.org/py2exe-python26的设置文件。

似乎没有什么工作 - 我究竟能做错什么?

3 个答案:

答案 0 :(得分:2)

我不确定你是怎么设法用py2exe编译PyQt的;我没有成功,转而pyinstaller Py2exe没有很好地与PyQt合作,并拒绝编译,具体取决于哪些小部件的特色。

我建议切换到pyinstaller来编译PyQt;在这种情况下看看它是否允许你想要的东西

答案 1 :(得分:0)

from distutils.core import setup
import py2exe

DATA=[('imageformats',['C:\\Python26/Lib/site-packages/PyQt4/plugins/imageformats/qjpeg4.dll',
    'C:\\Python26/Lib/site-packages/PyQt4/plugins/imageformats/qgif4.dll',
    'C:\\Python26/Lib/site-packages/PyQt4/plugins/imageformats/qico4.dll',
    'C:\\Python26/Lib/site-packages/PyQt4/plugins/imageformats/qmng4.dll',
    'C:\\Python26/Lib/site-packages/PyQt4/plugins/imageformats/qsvg4.dll',
    'C:\\Python26/Lib/site-packages/PyQt4/plugins/imageformats/qtiff4.dll'
    ])]
setup(windows=[{"script":"your_python_script.py"}], 
    data_files = DATA,
    options={"py2exe":{
        "includes":["sip", "PyQt4.QtNetwork", "PyQt4.QtWebKit", "PyQt4.QtSvg" ],
        "bundle_files":3,
        "compressed":True,
        "xref":True}}, 
    zipfile=None)

答案 2 :(得分:0)

万一有人遇到这种情况,我找到了解决方案。这些是使用py2exe进行编译时需要执行的操作,以便显示图像文件:

  • 需要将所有图像文件(gif,png,jpg)复制到dist文件夹
  • Qt dll文件需要从Qt安装文件夹复制到 DIST \ imageformats

对于dll文件,您需要在setup.py文件中设置它:

windows = [{
            "script":"yourPythonScript.py",
            "icon_resources": [(1, "nameOfIcoFile.ico")],
            "dest_base":"nameOfExeFile"
            }],
            data_files = [
                ('imageformats',
                [r'C:\Python27\Lib\site-packages\PyQt4\plugins\imageformats\qico4.dll',
                r'C:\Python27\Lib\site-packages\PyQt4\plugins\imageformats\qgif4.dll'
                ])],
)