我在圈子里奔跑,发生了一件非常奇怪的事情。基本上我正在尝试使用PyQt5 + python3.3 + cx_freeze4.3.2的简单窗口应用程序。这个问题运行完美,调用python:
python test.py
现在第二部分是基本的setup.py到cx_freeze:
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。
重新安装应用程序可能会解决此问题
根据我读到的所有内容关于plataforms上的dll / .exe内部找不到qwindow.dll。为什么它只发生在其他PC(win7)?开发PC(win7)工作正常。要调试它并确保使用的qwindow.dll是plataforms里面的那个/我将文件夹重命名为plataformFOO /并尝试运行test.exe,现在在开发PC中出现同样的问题,所以,dll在正确的文件夹中,将它重命名为plataforms /并且一切正常。如果操作系统是相同的,并且该文件夹是开发PC上的文件夹的简单副本,为什么地狱不能在其他PC上工作。
我谷歌,阅读大量的东西,但无法弄清楚问题。如果有人可以提供帮助;)
答案 0 :(得分:0)
我遇到了同样的问题,我使用PyQt5和cx_Freeze 5.0.1运行Anaconda 4.4.0 Python 2.7.13
将anaconda / library / plugin / platforms目录复制到包含.exe的目录中。
运行可执行文件,它应该可以正常工作
答案 1 :(得分:-5)
可悲的是,cx_freeze与一些自定义库(我的意思是来自python的非内置模块)不能很好地工作。我在尝试构建TTK对象时遇到了类似的问题(实际上来自ttk模块的colorchooser)。
您可能想尝试其他编译器,例如Compile Python using py2exe in 64 bit machine 祝你好运。