py2exe bundle_files = 1或2失败

时间:2011-01-18 04:40:42

标签: python pyqt4 py2exe

我的应用程序使用QGraphicsPixmapItem,并且为了能够加载jpeg文件,我将qjpeg4.dll放在'dist'目录下的'imageformats'子目录下。
它有效,但只有'bundle_files'选项设置为3 如果我将其设置为1或2,qt4(pyqt4)将无法再找到所需的dll,因此QGraphicsPixmapItems不可见。

setup.py:

from distutils.core import setup
import py2exe

setup(
    options = {'py2exe': {'bundle_files': 1}},
    description = "",
    name = "name",
    windows = ["mainwindow.py"],
    zipfile=None,
    )

1 个答案:

答案 0 :(得分:0)

你应该能够通过使用:

说服py2exe包含dll
setup(
      # other options,
      data_files=[('imageformats', 'qjpeg4.dll'),
      #other options
     )

为了将来参考,data_files应该是这样的(afaik):

data_files = [ (dir1, [file1, file2, ...]), (dir2, [file3, file4, ...]), ...]

编辑1 :您可以尝试使用这样的目录结构(source):

  • yourapp.exe
  • [qt.conf](可选?见下方)
  • 插件/
    • imageformats /
      • qjpeg4.dll

如果 不起作用,here建议使用如下所示的qt.conf文件:

[Paths]
Plugins = <directory containing the imageformats directory>

只要核心dll QtCore4.dll被正确包含(因为它需要这个.dll来解释你的qt.conf文件),显然应该可以正常工作。