一个简单的python脚本需要在没有安装python的Windows服务器上运行。
我使用了py2exe,它生成了一个健康的dist子目录,script.exe在本地机器上运行正常。
但是,当我在服务器(Windows Server 2003 R2)上运行它时,它会生成:
系统无法执行指定的程序。
和ERRORLEVEL是9020。
有什么想法吗?
答案 0 :(得分:6)
要使py2exe正常工作,您必须在应用程序中包含正确版本的Microsoft C运行时DLL。
对于Python2.6,这是MSVCR90.dll版本9.0.21022.8,可以从Microsoft Visual C ++ 2008 Redistributable Package获得:
请注意,此安装程序的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可执行文件将因上述错误而失败,但在安装可再发行组件包之后,可执行文件运行通常