如何系统地找出Python包所要查找的DLL?

2024-06-28 20:49:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据采集软件,它使用PyQt5和其他一些库。我使用cx\u 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: 找不到指定的程序。

那个非英语文本是(找不到program/dll),就像那个家伙说的那样。你知道吗

当跟随Dataset.py到第4行时,基本上是这样的:

from PyQt5.QtGui import *

我想指出的是,我在冻结过程中手动包含了许多DLL,包括一些来自intel mkl的DLL和一些来自Qt的DLL。我确定文件QtGui.dll也在那里。但现在我完全无法理解遗漏了什么。你知道吗

问题不是缺少dll。问题是,我似乎没有找到一种方法来系统地跟踪丢失的文件并提供它。你知道吗

我尝试的:

  • 我试着把所有的Qt*.dll文件都给他,让他把它们复制到可执行文件旁边,但没用。

  • 我试图研究QtGui的源代码,以找到它所拥有的ctypes导入内容。但是ctypes甚至没有在QtGui.pyi中导入。

我能给他点什么菜谱,让他知道我到底缺了什么吗?你知道吗


Tags: inpy程序linecondausersfilemodule