Python冻结的可执行文件在某些​​计算机上不起作用

时间:2017-01-27 01:27:13

标签: python python-3.x pyqt pyqt4 cx-freeze

我的冻结Python文件正在我的计算机上正常工作。我用cx_freeze冻结了他们,但在某些计算机上他们无法工作。例如在Windows 7中,它总是需要DLL文件,它说它们缺失了。它通常是api-ms-win个DLL文件。

在Windows 10中,它显示以下错误:

Windows 10 Error

但在我的电脑上,它可以正常工作。这怎么可能,我该如何解决?

1 个答案:

答案 0 :(得分:1)

有许多潜在的问题,但最常见的是Python 3.5+和Windows 10似乎缺少api-ms-win dll。

帮助我的Python冻结程序找到所需的DLL:

以下是pyinstaller问题跟踪器中的一组备注:

  

将所需dll的目录添加到系统路径。我的应用程序使用的是依赖于api-ms-win dlls的PyQt5。

     

对于PyQt5,添加以下目录:

%WHERE EVER YOU INSTALLED PYTHON%\Lib\site-packages\PyQt5\Qt\bin
  

对于api-ms-win dll,您需要Visual Studio 2015或Windows SDK(在此处下载):   目录,如果您有Visual Studio:C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ Remote Debugger \ x64   目录,如果您有Windows SDK:C:\ Program Files(x86)\ Windows Kits \ 10 \ Redist \ ucrt \ DLLs \ x64

添加所需路径后,pyinstaller可以找到这些文件。

SOURCE

但是缺少哪些DLL?

如果找不到任何丢失的DLL,可以使用Dependency Walker查找程序所需的所有DLL。

我应该使用Pyinstaller吗?

如果你正在使用的那个没有合作,通常值得尝试一些其他的冻结工具。