1

我有一个问题:我在我的程序中使用了 py2exe,它在我的计算机上运行。我用 Inno Setup 打包它(仍然在我的计算机上工作),但是当我将它发送到另一台计算机时,尝试运行应用程序时出现以下错误:“CreateProcess failed; code 14001。” 该应用程序不会运行。(注意:我在我的程序中使用 wxPython 和多处理模块。)我搜索了一下,发现用户应该安装一些 MS 可再发行的东西,但我不想让我的用户的生活变得复杂。有解决办法吗?

版本:

Python 2.6.2c1、py2exe 0.6.9、Windows XP 专业版

4

4 回答 4

3

您需要在安装目录中包含 msvcr90.dll、Microsoft.VC90.CRT.manifest 和 python.exe.manifest(重命名为 [yourappname].exe.manifest)。如果您使用“Just for me”选项安装 Python,这些文件将位于系统上的 Python26 目录中。

可以在此处找到执行此操作的说明。

不要忘记在你的主函数中调用multiprocessing.freeze_support(),否则当你开始一个新进程时你会遇到问题。

虽然其他人已经讨论过在您的安装包中包含 MSVC 运行时,但上述解决方案适用于您只想分发包含所有文件的单个 .zip 文件时。当您不想要额外的复杂性时,它避免了必须创建单独的安装包。

于 2009-06-26T13:56:26.357 回答
1

作为 InnoSetup setup exe 的一部分,您应该能够安装 MS 可再发行的东西。

于 2009-06-26T11:57:06.520 回答
1

运行 py2exe 时,请仔细查看完成后的最终消息。它为您提供了程序所需的 DLL 列表,但 py2exe 不会自动捆绑。

列表中的许多都可以在任何 Windows 安装中可靠地使用,但是您应该手动将其中一些捆绑到您的 Inno Setup 安装中。仅当您想在较旧的 Windows 安装(例如 Win 2000 或更早版本)上部署时才需要一些。

于 2009-07-14T11:27:54.633 回答
0

您可以将有问题的运行时 DLL 作为“私有程序集”与您的应用程序一起提供。这只是意味着将包含运行时 DLL 及其清单的特殊命名目录的副本与可执行文件放在一起。

请参阅我对这篇文章的回答

于 2009-06-26T11:48:34.617 回答