部署Python程序时的问题(使用py2exe打包)
我遇到了一个问题:我用py2exe把我的程序打包了,在我的电脑上运行得很好。我又用Inno Setup打包(在我电脑上也没问题),但是当我把它发到另一台电脑上时,运行这个应用程序时出现了一个错误:“CreateProcess失败;代码14001。”这个应用程序根本无法运行。
(备注:我在程序中使用了wxPython和多进程模块。)
我在网上查了一下,发现用户需要安装一些微软的可再分发组件,但我不想让我的用户觉得麻烦。有没有什么解决办法呢?
版本信息:
Python 2.6.2c1, py2exe 0.6.9, Windows XP专业版
4 个回答
当你运行py2exe的时候,完成后要仔细看看最后的消息。它会给你一份需要的DLL文件的列表,这些文件是程序运行所必需的,但py2exe并不会自动把它们打包进去。
列表中的很多DLL文件在任何Windows系统上都能找到,但有一些你需要手动把它们打包到你的Inno Setup安装包里。如果你想在旧版Windows系统上运行,比如Windows 2000或更早的版本,就需要这些文件。
你应该可以把那个微软的可再发行组件作为你InnoSetup安装程序的一部分来安装。
你需要在你的安装目录里放入几个文件:msvcr90.dll、Microsoft.VC90.CRT.manifest,还有python.exe.manifest(这个要改名为[yourappname].exe.manifest)。如果你是选择“仅为我自己”安装Python的话,这些文件会在你的Python26文件夹里找到。
关于怎么做的详细步骤,可以在这里找到。
别忘了在你的主函数里调用multiprocessing.freeze_support(),否则当你启动一个新进程时会遇到问题。
虽然其他人讨论过如何把MSVC运行时包含在你的安装包里,但上面提到的方法适合你只想分发一个包含所有文件的.zip文件的情况。这样就不用创建一个单独的安装包,避免了额外的麻烦。