【问题标题】:Problem deploying Python program (packaged with py2exe)部署 Python 程序的问题(用 py2exe 打包)
【发布时间】:2009-06-26 11:36:40
【问题描述】:

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

版本:

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

【问题讨论】:

    标签: python deployment wxpython multiprocessing py2exe


    【解决方案1】:

    您需要在安装目录中包含 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 文件的情况。当您不想要额外的复杂性时,它避免了必须创建单独的安装包。

    【讨论】:

      【解决方案2】:

      您应该能够将 MS 可再分发的东西安装为 InnoSetup 设置 exe 的一部分。

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

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

          my answer to this post

          【讨论】:

            猜你喜欢
            • 2010-09-18
            • 2010-09-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-03-02
            • 2011-11-22
            相关资源
            最近更新 更多