我的应用程序使用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,
)
答案 0 :(得分:0)
你应该能够通过使用:
说服py2exe包含dllsetup(
# other options,
data_files=[('imageformats', 'qjpeg4.dll'),
#other options
)
为了将来参考,data_files
应该是这样的(afaik):
data_files = [ (dir1, [file1, file2, ...]), (dir2, [file3, file4, ...]), ...]
编辑1 :您可以尝试使用这样的目录结构(source):
如果 不起作用,here建议使用如下所示的qt.conf
文件:
[Paths]
Plugins = <directory containing the imageformats directory>
只要核心dll QtCore4.dll
被正确包含(因为它需要这个.dll来解释你的qt.conf文件),显然应该可以正常工作。