Windows Server无法执行py2exe生成的应用程序

时间:2009-12-24 21:26:30

标签: python windows py2exe

一个简单的python脚本需要在没有安装python的Windows服务器上运行。

我使用了py2exe,它生成了一个健康的dist子目录,script.exe在本地机器上运行正常。
但是,当我在服务器(Windows Server 2003 R2)上运行它时,它会生成: 系统无法执行指定的程序。

和ERRORLEVEL是9020。

有什么想法吗?

4 个答案:

答案 0 :(得分:6)

要使py2exe正常工作,您必须在应用程序中包含正确版本的Microsoft C运行时DLL。

对于Python2.6,这是MSVCR90.dll版本9.0.21022.8,可以从Microsoft Visual C ++ 2008 Redistributable Package获得:

http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en

请注意,此安装程序的SP1包含不同版本的DLL,但不起作用。

我今年早些时候花了一些时间在py2exe教程中仔细解释了这一点,所以我只想链接到: http://www.py2exe.org/index.cgi/Tutorial#Step5

答案 1 :(得分:2)

可能缺少一些必需的DLL。尝试使用depends.exe来确定可能缺失的内容。它可能是一个msvc-something-something.dll

答案 2 :(得分:1)

我没有找到问题的原因,但在同一个脚本上使用python 2.5和py2exe在服务器上工作正常。

我猜在2.6下py2exe有问题。

答案 3 :(得分:1)

由于Python 2.6是针对Visual Studio 2008构建的,因此目标计算机还必须具有Visual Studio 2008库,可从Visual C++ 2008 Redistributable package获得。

我确认在Windows XP或Server 2003(两者都没有Visual Studio 2008可再发行组件)的干净版本中,Python 2.6 py2exe可执行文件将因上述错误而失败,但在安装可再发行组件包之后,可执行文件运行通常