这是我第一次尝试编译项目时,我决定使用PyInstaller。编译器成功构建了exe,以“正常”模式运行该程序时,程序将运行直到打开PyQt5窗口为止,在该窗口中,仅窗口轮廓和项目徽标(它可以访问资源)不显示任何内容,然后然后应用程序冻结。但是,在调试模式下,输出如下。
>[21664] PyInstaller Bootloader 3.x
>[21664] LOADER: executable is PATH\mainGUI (1) (1).exe
>[21664] LOADER: homepath is PATH
>[21664] LOADER: _MEIPASS2 is NULL
>[21664] LOADER: archivename is PATH\mainGUI (1) (1).exe
>[21664] LOADER: No need to extract files to run; setting extractionpath to homepath
>[21664] LOADER: SetDllDirectory(PATH)
>[21664] LOADER: Already in the child - running user's code.
>[21664] LOADER: Python library: PATH\python35.dll
>[21664] LOADER: Loaded functions from Python library.
>[21664] LOADER: Manipulating environment (sys.path, sys.prefix)
>[21664] LOADER: sys.prefix is PATH
>[21664] LOADER: Pre-init sys.path is PATH;PATH
>[21664] LOADER: Setting runtime options
>[21664] LOADER: Initializing python
>[21664] LOADER: Overriding Python's sys.path
>[21664] LOADER: Post-init sys.path is PATH;PATH
>[21664] LOADER: Setting sys.argv
>[21664] LOADER: setting sys._MEIPASS
>[21664] LOADER: importing modules from CArchive
>[21664] LOADER: extracted struct
>[21664] LOADER: callfunction returned...
>[21664] LOADER: extracted pyimod01_os_path
>[21664] LOADER: callfunction returned...
>[21664] LOADER: extracted pyimod02_archive
>[21664] LOADER: callfunction returned...
>[21664] LOADER: extracted pyimod03_importers
>[21664] LOADER: callfunction returned...
>[21664] LOADER: Installing PYZ archive with Python modules.
>[21664] LOADER: PYZ archive: PYZ-00.pyz
>[21664] LOADER: Running pyiboot01_bootstrap.py
>[21664] LOADER: Running pyi_rth_multiprocessing.py
>[21664] LOADER: Running pyi_rth_pkgres.py
>[21664] LOADER: Running pyi_rth_qt5.py
>[21664] LOADER: Running mainGUI.py
>ENTER NGROK PORT :0
>[21664] LOADER: OK.
>[21664] LOADER: Cleaning up Python interpreter.
(NGROK PORT:0仅用于连接服务器)
我已经使用Dependency Walker检查了缺少的DLL,但没有任何反应。我认为这与PyQt挂钩有关,但我完全不知道该怎么办。
任何帮助将不胜感激。
我尝试使用py2exe等其他编译器重新编译多次,并查看OllyDbg的踪迹,但仍然没有运气。
编辑 设法编译了一个更有用的版本进行调试。错误消息是> QApplication :: exec:必须从主线程调用 奇怪的是,在IDLE中成功从主线程调用了窗口。
进一步但可能不相关的挖掘 在OllyDbg中查看
0053C9B8 770745F9 RETURN to KERNELBA.770745F9 from ntdll.ZwWaitForSingleObject
日志数据
New process with ID 000037CC created
00147BBA Main thread with ID 000056AC created
77AB1440 New thread with ID 000055CC created
77AB1440 New thread with ID 000048E0 created
77AB1440 New thread with ID 00005128 created
00140000 Module PATH\ver170219 2\mainGUI.exe
72260000 Module C:\WINDOWS\SYSTEM32\apphelp.dll
74310000 Module C:\WINDOWS\System32\CRYPTBASE.dll
74320000 Module C:\WINDOWS\System32\SspiCli.dll
75840000 Module C:\WINDOWS\System32\WS2_32.dll
765B0000 Module C:\WINDOWS\System32\KERNEL32.DLL
76890000 Module C:\WINDOWS\System32\sechost.dll
768E0000 Module C:\WINDOWS\System32\RPCRT4.dll
76F20000 Module C:\WINDOWS\System32\bcryptPrimitives.dll
76F80000 Module C:\WINDOWS\System32\KERNELBASE.dll
77A60000 Module C:\WINDOWS\SYSTEM32\ntdll.dll
77ACCE37 Single step event at ntdll.77ACCE37
00147BBA Program entry point
Analysing mainGUI
670 heuristical procedures
278 calls to known, 687 calls to guessed functions
302 loops, 43 switches
652E0000 Module PATH\ver170219 2\python35.dll
76DC0000 Module C:\WINDOWS\System32\ADVAPI32.dll
75690000 Module C:\WINDOWS\System32\msvcrt.dll
777C0000 Module C:\WINDOWS\System32\ucrtbase.dll
74190000 Module C:\WINDOWS\SYSTEM32\VERSION.dll
6A090000 Module PATH\ver170219 2\VCRUNTIME140.dll
724C0000 Module C:\WINDOWS\System32\CRYPTSP.dll
72490000 Module C:\WINDOWS\system32\rsaenh.dll
73C60000 Module C:\WINDOWS\SYSTEM32\bcrypt.dll
6D000000 Module PATH\ver170219 2\python3.dll
6A070000 Module PATH\ver170219 2\_ctypes.pyd
769F0000 Module C:\WINDOWS\System32\ole32.dll
76B60000 Module C:\WINDOWS\System32\combase.dll
766F0000 Module C:\WINDOWS\System32\GDI32.dll
76430000 Module C:\WINDOWS\System32\gdi32full.dll
763B0000 Module C:\WINDOWS\System32\msvcp_win.dll
77170000 Module C:\WINDOWS\System32\USER32.dll
777A0000 Module C:\WINDOWS\System32\win32u.dll
75750000 Module C:\WINDOWS\System32\OLEAUT32.dll
774A0000 Module C:\WINDOWS\System32\IMM32.DLL
66A60000 Module PATH\ver170219 2\_socket.pyd
6C290000 Module PATH\ver170219 2\select.pyd
66A40000 Module PATH\ver170219 2\_bz2.pyd
66650000 Module PATH\ver170219 2\_lzma.pyd
66380000 Module PATH\ver170219 2\pyexpat.pyd
651D0000 Module PATH\ver170219 2\_hashlib.pyd
65010000 Module PATH\ver170219 2\PyQt5\QtCore.pyd
64B60000 Module PATH\ver170219 2\Qt5Core.dll
74340000 Module C:\WINDOWS\System32\SHELL32.dll
758B0000 Module C:\WINDOWS\System32\cfgmgr32.dll
75D60000 Module C:\WINDOWS\System32\shcore.dll
75DF0000 Module C:\WINDOWS\System32\windows.storage.dll
769A0000 Module C:\WINDOWS\System32\shlwapi.dll
77960000 Module C:\WINDOWS\System32\kernel.appcore.dll
758F0000 Module C:\WINDOWS\System32\profapi.dll
Invalid or compressed Image Export Directory
778E0000 Module C:\WINDOWS\System32\powrprof.dll
765A0000 Module C:\WINDOWS\System32\FLTLIB.DLL
727F0000 Module C:\WINDOWS\SYSTEM32\MPR.dll
74170000 Module C:\WINDOWS\SYSTEM32\NETAPI32.dll
742E0000 Module C:\WINDOWS\SYSTEM32\USERENV.dll
72C70000 Module C:\WINDOWS\SYSTEM32\WINMM.dll
64AE0000 Module PATH\ver170219 2\MSVCP140.dll
726E0000 Module C:\WINDOWS\SYSTEM32\WINMMBASE.dll
74070000 Module C:\WINDOWS\SYSTEM32\NETUTILS.DLL
607E0000 Module C:\WINDOWS\SYSTEM32\SRVCLI.DLL
66630000 Module PATH\ver170219 2\PyQt5\sip.pyd
64900000 Module PATH\ver170219 2\PyQt5\QtGui.pyd
64400000 Module PATH\ver170219 2\Qt5Gui.dll
64050000 Module PATH\ver170219 2\PyQt5\QtWidgets.pyd
63C10000 Module PATH\ver170219 2\Qt5Widgets.dll
71DC0000 Module C:\WINDOWS\SYSTEM32\UxTheme.dll
71FA0000 Module C:\WINDOWS\SYSTEM32\dwmapi.dll
63AA0000 Module PATH\ver170219 2\_ssl.pyd
77300000 Module C:\WINDOWS\System32\CRYPT32.dll
76AF0000 Module C:\WINDOWS\System32\MSASN1.dll
73500000 Module C:\WINDOWS\system32\mswsock.dll
639C0000 Module PATH\ver170219 2\unicodedata.pyd
63870000 Module PATH\ver170219 2\numpy\core\multiarray.cp35-win32.pyd
04692810 New thread with ID 000054C4 created
04692810 New thread with ID 00003240 created
04692810 New thread with ID 00002554 created
04460000 Module PATH\ver170219 2\libopenblas.KZGMSHIV2CB7DB4HQYDV2LEPUALNSYMY.gfortran-win32.dll
637C0000 Module PATH\ver170219 2\numpy\core\umath.cp35-win32.pyd
6C110000 Module PATH\ver170219 2\numpy\linalg\lapack_lite.cp35-win32.pyd
66360000 Module PATH\ver170219 2\numpy\linalg\_umath_linalg.cp35-win32.pyd
66320000 Module PATH\ver170219 2\_decimal.pyd
637A0000 Module PATH\ver170219 2\numpy\core\_multiarray_tests.cp35-win32.pyd
6BE70000 Module PATH\ver170219 2\numpy\fft\fftpack_lite.cp35-win32.pyd
636F0000 Module PATH\ver170219 2\numpy\random\mtrand.cp35-win32.pyd
636C0000 Module PATH\ver170219 2\pandas\_libs\tslib.cp35-win32.pyd
63680000 Module PATH\ver170219 2\pandas\_libs\tslibs\conversion.cp35-win32.pyd
66A30000 Module PATH\ver170219 2\pandas\_libs\tslibs\np_datetime.cp35-win32.pyd
63650000 Module PATH\ver170219 2\pandas\_libs\tslibs\nattype.cp35-win32.pyd
63600000 Module PATH\ver170219 2\pandas\_libs\tslibs\timedeltas.cp35-win32.pyd
635E0000 Module PATH\ver170219 2\pandas\_libs\tslibs\timezones.cp35-win32.pyd
635A0000 Module PATH\ver170219 2\pandas\_libs\tslibs\parsing.cp35-win32.pyd
63590000 Module PATH\ver170219 2\pandas\_libs\tslibs\ccalendar.cp35-win32.pyd
63550000 Module PATH\ver170219 2\pandas\_libs\tslibs\strptime.cp35-win32.pyd
63510000 Module PATH\ver170219 2\pandas\_libs\tslibs\timestamps.cp35-win32.pyd
634F0000 Module PATH\ver170219 2\pandas\_libs\tslibs\fields.cp35-win32.pyd
63490000 Module PATH\ver170219 2\pandas\_libs\hashtable.cp35-win32.pyd
63470000 Module PATH\ver170219 2\pandas\_libs\missing.cp35-win32.pyd
63410000 Module PATH\ver170219 2\pandas\_libs\lib.cp35-win32.pyd
63310000 Module PATH\ver170219 2\pandas\_libs\algos.cp35-win32.pyd
63300000 Module PATH\ver170219 2\pandas\_libs\properties.cp35-win32.pyd
632F0000 Module PATH\ver170219 2\pandas\_libs\hashing.cp35-win32.pyd
63290000 Module PATH\ver170219 2\pandas\_libs\index.cp35-win32.pyd
63250000 Module PATH\ver170219 2\pandas\_libs\tslibs\period.cp35-win32.pyd
63230000 Module PATH\ver170219 2\pandas\_libs\tslibs\frequencies.cp35-win32.pyd
63200000 Module PATH\ver170219 2\pandas\_libs\tslibs\resolution.cp35-win32.pyd
631C0000 Module PATH\ver170219 2\pandas\_libs\tslibs\offsets.cp35-win32.pyd
63050000 Module PATH\ver170219 2\pandas\_libs\join.cp35-win32.pyd
63030000 Module PATH\ver170219 2\pandas\_libs\ops.cp35-win32.pyd
62EC0000 Module PATH\ver170219 2\pandas\_libs\interval.cp35-win32.pyd
62EB0000 Module PATH\ver170219 2\pandas\_libs\indexing.cp35-win32.pyd
62E80000 Module PATH\ver170219 2\pandas\_libs\internals.cp35-win32.pyd
62DE0000 Module PATH\ver170219 2\pandas\_libs\sparse.cp35-win32.pyd
62D70000 Module PATH\ver170219 2\pandas\_libs\window.cp35-win32.pyd
62D50000 Module PATH\ver170219 2\pandas\_libs\skiplist.cp35-win32.pyd
62D10000 Module PATH\ver170219 2\pandas\_libs\reduction.cp35-win32.pyd
62C90000 Module PATH\ver170219 2\pandas\_libs\groupby.cp35-win32.pyd
62C70000 Module PATH\ver170219 2\pandas\_libs\reshape.cp35-win32.pyd
62C10000 Module PATH\ver170219 2\pandas\_libs\parsers.cp35-win32.pyd
62BF0000 Module PATH\ver170219 2\pandas\_libs\json.cp35-win32.pyd
62BC0000 Module PATH\ver170219 2\pandas\_libs\writers.cp35-win32.pyd
62BA0000 Module PATH\ver170219 2\pandas\io\msgpack\_packer.cp35-win32.pyd
62B80000 Module PATH\ver170219 2\pandas\io\msgpack\_unpacker.cp35-win32.pyd
62B70000 Module PATH\ver170219 2\pandas\util\_move.cp35-win32.pyd
62B50000 Module PATH\ver170219 2\pandas\_libs\testing.cp35-win32.pyd
62B20000 Module PATH\ver170219 2\pyodbc.cp35-win32.pyd
62A80000 Module C:\WINDOWS\SYSTEM32\ODBC32.dll
77AB1440 New thread with ID 00004EB0 created
77AB1440 New thread with ID 00002144 created
717F0000 Module C:\WINDOWS\SYSTEM32\DPAPI.DLL
62950000 Module PATH\ver170219 2\PyQt5\Qt\plugins\platforms\qwindows.dll
62920000 Module PATH\ver170219 2\PyQt5\Qt\plugins\styles\qwindowsvistastyle.dll
62910000 Module PATH\ver170219 2\PyQt5\Qt\plugins\imageformats\qgif.dll
62900000 Module PATH\ver170219 2\PyQt5\Qt\plugins\imageformats\qicns.dll
628F0000 Module PATH\ver170219 2\PyQt5\Qt\plugins\imageformats\qico.dll
628A0000 Module PATH\ver170219 2\PyQt5\Qt\plugins\imageformats\qjpeg.dll
62890000 Module PATH\ver170219 2\PyQt5\Qt\plugins\imageformats\qsvg.dll
62840000 Module PATH\ver170219 2\Qt5Svg.dll
62830000 Module PATH\ver170219 2\PyQt5\Qt\plugins\imageformats\qtga.dll
627D0000 Module PATH\ver170219 2\PyQt5\Qt\plugins\imageformats\qtiff.dll
62700000 Module PATH\ver170219 2\PyQt5\Qt\plugins\imageformats\qwbmp.dll
62690000 Module PATH\ver170219 2\PyQt5\Qt\plugins\imageformats\qwebp.dll
6F250000 Module C:\WINDOWS\system32\dwrite.dll
76BF8010 New thread with ID 0000554C created
77650000 Module C:\WINDOWS\System32\MSCTF.dll
77560000 Module C:\WINDOWS\System32\clbcatq.dll
6BE20000 Module C:\WINDOWS\system32\dataexchange.dll
6EFF0000 Module C:\WINDOWS\system32\d3d11.dll
6BCE0000 Module C:\WINDOWS\system32\dcomp.dll
71EF0000 Module C:\WINDOWS\system32\dxgi.dll
6C120000 Module C:\WINDOWS\system32\twinapi.appcore.dll
6CFE0000 Module C:\WINDOWS\system32\RMCLIENT.dll
6D0C0000 Module C:\WINDOWS\System32\TextInputFramework.dll
6AA40000 Module C:\WINDOWS\System32\CoreUIComponents.dll
6ACA0000 Module C:\WINDOWS\System32\CoreMessaging.dll
734D0000 Module C:\WINDOWS\SYSTEM32\ntmarta.dll
64B906A0 New thread with ID 00005184 created
Thread 00005184 terminated, exit code 0
Thread 00005184 terminated, trace stopped