部署Python程序(用py2exe打包)出现问题

发布于 2024-07-26 01:58:10 字数 324 浏览 5 评论 0原文

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

版本:

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

I have a problem: I used py2exe for my program, and it worked on my computer. I packaged it with Inno Setup (still worked on my computer), but when I sent it to a different computer, I got the following error when trying to run the application: "CreateProcess failed; code 14001." The app won't run.
(Note: I am using wxPython and the multiprocessing module in my program.)
I googled for it a bit and found that the the user should install some MS redistributable something, but I don't want to make life complicated for my users. Is there a solution?

Versions:

Python 2.6.2c1,
py2exe 0.6.9,
Windows XP Pro

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

假面具 2024-08-02 01:58:10

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

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

不要忘记调用 multiprocessing.freeze_support()你的主要功能也是如此,否则当你开始一个新的进程时你会遇到问题。

虽然其他人已经讨论了在安装包中包含 MSVC 运行时,但当您只想分发包含所有文件的单个 .zip 文件时,上述解决方案有效。 当您不希望出现额外的复杂情况时,它可以避免创建单独的安装包。

You need to include msvcr90.dll, Microsoft.VC90.CRT.manifest, and python.exe.manifest (renamed to [yourappname].exe.manifest) in your install directory. These files will be in the Python26 directory on your system if you installed Python with the "Just for me" option.

Instructions for doing this can be found here.

Don't forget to call multiprocessing.freeze_support() in your main function also, or you will have problems when you start a new process.

While others have discussed including the MSVC runtime in your install package, the above solution works when you only want to distribute a single .zip file containing all your files. It avoids having to create a separate install package when you don't want that additional complication.

哭泣的笑容 2024-08-02 01:58:10

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

You should be able to install that MS redistributable thingy as a part of your InnoSetup setup exe.

兔姬 2024-08-02 01:58:10

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

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

When you run py2exe, look closely at the final messages when it's completed. It gives you a list of DLLs that it says are needed by the program, but that py2exe doesn't automatically bundle.

Many in the list are reliably available on any Windows install, but there will be a few that you should manually bundle into your Inno Setup installation. Some are only needed if you want to deploy on older Windows installs e.g. Win 2000 or earlier.

黎夕旧梦 2024-08-02 01:58:10

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

请参阅我的回答这篇文章

You can ship the runtime DLLs in question with your application as a "private assembly". This simply means putting a copy of a specially-named directory containing the runtime DLLs and their manifests alongside your executable.

See my answer to this post.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文