我遇到了一个问题:我在我的程序中使用了py2exe,它在我的计算机上运行。我用Inno Setup打包它(仍在我的计算机上工作),但是当我将它发送到另一台计算机时,我在尝试运行应用程序时遇到以下错误:“CreateProcess失败;代码14001”。该应用程序将无法运行。 (注意:我在我的程序中使用wxPython和多处理模块。) 我google了一下,发现用户应该安装一些MS可再发行的东西,但我不想让我的用户生活变得复杂。有解决方案吗?
版本:
Python 2.6.2c1, py2exe 0.6.9, Windows XP专业版
答案 0 :(得分:3)
您需要在安装目录中包含msvcr90.dll,Microsoft.VC90.CRT.manifest和python.exe.manifest(重命名为[yourappname] .exe.manifest)。如果您使用“Just for me”选项安装Python,这些文件将位于系统的Python26目录中。
执行此操作的说明can be found here。
不要忘记在主要功能中拨打multiprocessing.freeze_support(),否则在开始新流程时会遇到问题。
虽然其他人已经讨论过在您的安装包中包含MSVC运行时,但只需要分发包含所有文件的单个.zip文件时,上述解决方案就可以运行。当您不想要额外的复杂功能时,它可以避免创建单独的安装包。
答案 1 :(得分:1)
您应该可以将MS可再发行组件安装为InnoSetup安装程序的一部分。
答案 2 :(得分:1)
运行py2exe时,请仔细查看完成后的最终消息。它为您提供了程序所需的DLL列表,但py2exe不会自动捆绑。
列表中的许多内容在任何Windows安装上都可靠地可用,但是您应该手动将其捆绑到Inno安装程序中。只有在想要在较旧的Windows安装上部署时才需要一些例如赢得2000或更早。
答案 3 :(得分:0)
您可以将应用程序的运行时DLL作为“私有程序集”发布。这只是意味着将包含运行时DLL及其清单的特殊命名目录的副本放在可执行文件旁边。