我有一个使用PyQt5和其他一些库的数据采集软件。我使用cx_freeze将程序冻结为可执行文件。该程序适用于所有客户(不到10个),除了韩国的这个人。他收到了这个错误:
D:\Acquirer\Acquirer.exe
Traceback (most recent call last):
File "C:\Users\user\AppData\Local\conda\conda\envs\py35\lib\site-packages\cx_Freeze\initscripts\__startup__.py", line 14, in run
File "C:\Users\user\AppData\Local\conda\conda\envs\py35\lib\site-packages\cx_Freeze\initscripts\Console.py", line 26, in run
File "AcquirerLibs/acquirer.py", line 5, in <module>
File "C:\Users\user\BoxDataAcquisition\AcquirerLibs\AcquisitionWindow.py", line 3, in <module>
File "C:\Users\user\BoxDataAcquisition\AcquirerLibs\DataAcquire.py", line 10, in <module>
File "C:\Users\user\BoxDataAcquisition\AcquirerLibs\DataCollected.py", line 7, in <module>
File "C:\Users\user\BoxDataAcquisition\AcquirerLibs\Dataset.py", line 4, in <module>
ImportError: DLL load failed: 找不到指定的程序。
那个非英语文本是(找不到程序/ dll),正如那个人说的那样。
关注Dataset.py
到第4行时,基本上就是这样:
from PyQt5.QtGui import *
我想指出我在冻结过程中手动包含了许多DLL,包括一些来自intel mkl和其他来自Qt的DLL。我确保文件QtGui.dll也在那里。但现在我完全无法理解失踪的东西。
问题不在于缺少dll。问题是我似乎找不到系统地跟踪丢失文件并提供它的方法。
我尝试了什么:
我尝试将所有Qt*.dll
个文件复制到可执行文件旁边,但这并没有帮助。
我试着查看QtGui的来源,找出ctypes
导入的内容。但是ctypes甚至没有导入QtGui.pyi
。
我可以给他一些食谱吗,这样他就可以找到究竟缺少的DLL吗?