我在Windows8中创建了一个可执行文件。它可以在Windows8和Windows10中正常运行。问题是当我在Windows7中双击可执行文件时,我收到消息"myfile.exe已停止工作“。我测试了所有出现在我脑海中的东西,但问题仍然存在。
发布于 2018-10-17 17:32:21
问题很可能是您在不运行可执行文件的计算机上缺少DLL。
这是因为在某些地方,有时你已经安装了.NET环境、Visual XXX环境或包含一组特定的动态链接库的运行时,以使应用程序正常工作。
从问题中的提问,它指向了一个可视化的C++运行时。它可以通过一套完整的可视化C++套件安装,也可以只安装一个VCruntime (通常)。
同样重要的是要指出,这些运行时都有自己的协议和许可证条款。这就是为什么它们没有打包到可执行文件中的原因(通常也是如此)。根据您使用的冻结技术,您可以将它们捆绑到您的可执行文件中,但这是不允许的,您需要有权限才能这样做。
一种方法(通过pyinstaller)是这样做的:
pyinstaller -F --add-data ucrtbase.dll;. myscript.py
如果这是允许的,请再次检查许可证。
如果你不顾一切地决定用你的.exe复制和粘贴动态链接库,你需要确保它可以通过你的Windows PATH
环境访问,因为那是你的可执行文件查找DLL的地方(通常是system32或其他路径)。因此,盲目地复制它,因为互联网上有人这么说,并不总是有效的。你必须学习和理解它为什么会工作,以及它是如何工作的。
这里有一个很好的外部来源,很好地描述了这种现象:https://docs.python-guide.org/shipping/freezing/
除py2app外,所有解决方案都需要在目标计算机上安装MS Visual C++ dll。只有Pyinstaller才会生成可自执行的exe,在将--onefile传递给Configure.py时捆绑dll。
https://stackoverflow.com/questions/52849807
复制相似问题