我正在兜圈子,发生了一件非常奇怪的事情。基本上我正在尝试使用 PyQt5+python3.3+cx_freeze4.3.2 的简单窗口应用程序。问题运行完美调用python:
python test.py
现在是 cx_freeze 的基本 setup.py 的第二部分:
import sys
from cx_Freeze import setup, Executable
base = None
if sys.platform == 'win32':
base = 'Win32GUI'
options = {
'build_exe': {
'includes': 'atexit'
}
}
executables = [
Executable('test.py', base=base)
]
setup(name='test',
version='0.1',
description='test',
options=options,
executables=executables
)
构建它:
python test.py build
创建以下文件夹:
构建/exe.win32-3.3:
/platforms
/imageformats
test.exe
icudt49.dll
icuin49.dll
icuuc49.dll
libGLESv2.dll
library.zip
PyQt5.QtCore.pyd
PyQt5.QtGui.pyd
PyQt5.QtWidgets.pyd
python33.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Widgets.dll
sip.pyd
unicodedata.pyd
_bz2.pyd
现在运行 test.exe 一切正常。
当我将构建文件夹复制到其他 PC 时,问题就来了。运行 test.exe 时弹出错误
此应用程序无法启动,因为它无法找到或加载 QT 平台插件“windows”。
可用的平台插件有:minimal、offscreen、windows。
重新安装应用程序可能会解决此问题
根据我阅读的所有内容,它是关于平台上的 dll/.exe 在里面找不到 qwindow.dll。为什么它只发生在其他PC(win7)?开发PC(win7)工作正常。为了调试它并确保使用的 qwindow.dll 是 plataforms/ 里面的那个,我将文件夹重命名为 plataformFOO/ 并尝试运行 test.exe,现在在开发 PC 中出现同样的问题,因此,dll 位于正确的文件夹中,将其重命名为平台/并且一切正常。如果操作系统相同并且文件夹是开发 PC 上的文件夹的简单副本,为什么在其他 PC 上不工作。
我谷歌,阅读了大量的东西,但无法找出问题所在。如果有人可以提供帮助;)