5

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

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

错误级别为 9020。

有任何想法吗?

4

4 回答 4

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

于 2010-07-09T12:49:57.513 回答
2

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

于 2009-12-24T22:06:51.097 回答
1

我没有找到问题的原因,但是在同一脚本上使用 python 2.5 和 py2exe 在服务器上运行良好。

我猜2.6下的py2exe有问题。

于 2009-12-25T22:14:25.770 回答
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 可执行文件将因上述错误而失败,但在安装可再发行组件包后,可执行文件运行正常。

于 2010-04-20T21:42:39.140 回答