我在一個奇怪的事情發生的圈子裏跑。基本上我正在嘗試一個簡單的窗口應用程序與PyQt5 + python3.3 + cx_freeze4.3.2。問題運行完美通話蟒蛇:cx_freeze + PyQt5 + 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
創建後續文件夾:
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平臺插件「窗口」。
可用的平臺插件是:最小化,屏幕外,窗口。
重新安裝應用程序可能修復問題
根據一切我讀它是關於plataforms的dll/.exe文件不qwindow.dll裏面找到。爲什麼它只發生在其他PC(WIN7)?開發PC(win7)工作正常。要調試它,並確保所使用的qwindow.dll是plataforms裏面的一個/我將該文件夾重命名爲plataformFOO /,然後嘗試運行test.exe,現在在開發PC中也出現同樣的問題,所以,dll位於正確的文件夾中,將它重新命名爲plataforms /並且一切正常。如果操作系統相同,並且該文件夾是開發PC上的文件夾的簡單副本,爲什麼地獄不在其他PC上工作。
我谷歌,閱讀負載的東西,但無法找出問題。如果有人可以幫忙;)
這是非常奇怪的 - 它說,它無法加載「窗口」平臺的插件,但隨後將其列爲可用的插件之一。我想它一定是由於某種原因加載失敗。也許它依賴於別的東西?嘗試在程序工作的PC上使用[Process Explorer](http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx),並查看它是否從其他地方加載DLL。 –
現在在個人電腦上進行了測試,一切工作正常,qwindows.dll從根文件夾的平臺/內部加載(沒有其他qwindows.dll正在加載)..在其他PC上的dll沒有加載 – phreaking
'根文件夾',你的意思是cx_Freeze複製它的生成文件夾?它是否從該文件夾之外加載任何其他DLL? –