在Windows 8上创建的pyinstaller exe在Windows 7中无法运行

时间:2018-10-17 07:51:10

标签: python exe pyinstaller

我已经在Windows 8中制作了一个可执行文件。它可以在Windows 8和10中正常运行。问题是,当我双击Windows 7中的exe文件时,出现消息“ myfile.exe已停止工作”。我测试了所有想到的东西,但问题仍然存在。

The figure below is the message when I run my exe file

1 个答案:

答案 0 :(得分:1)

问题很可能是您在无法运行可执行文件的计算机上丢失了DLL。

这是由于以下事实:在某些位置,一段时间内您已经安装了.NET环境,Visual XXX环境或包含一组特定的DDL的运行库,以使应用程序正常运行。

从提出问题开始,它指向Visual C ++运行时。可以通过全套Visual C ++套件或仅通过VCruntime (通常)安装。

同样重要的是要指出这些运行时带有它们自己的协议和许可条款。这就是为什么它们不打包在可执行文件(通常也是)中的原因。您可以将它们捆绑在可执行文件中,具体取决于您使用的冻结技术,但这是不允许的,您需要具有这样做的权限。

一种实现方式(通过pyinstaller)是:

pyinstaller -F --add-data ucrtbase.dll;. myscript.py

再次,请检查许可是否允许。

如果千方百计决定将DLL与.exe复制并粘贴,则需要确保可通过Windows PATH环境访问该DLL,因为这是可执行文件在其中查找DLL (通常是system32或其他路径)。因此,一味地复制它是因为互联网上的某人这样说并不总是可行。您必须学习并理解它为什么会工作以及如何工作。

这里有一个很好的外部来源,很好地描述了这种现象:https://docs.python-guide.org/shipping/freezing/

  

除py2app之外,所有解决方案都需要在目标计算机上安装MS Visual C ++ dll。只有Pyinstaller才能在将--onefile传递给Configure.py时捆绑该dll的自可执行exe。