python应用程序到exe在WinSRV2003上不工作

python应用程序到exe在WinSRV2003上不工作,python,windows,windows-server-2003,py2exe,Python,Windows,Windows Server 2003,Py2exe,我创建了一个小应用程序,用于在服务器出现问题时发送电子邮件。使用py2exe创建exe文件。虽然它在Win7上运行非常好,但在WinSRV2003上运行它时遇到了问题。我不相信这与代码本身有关。 请参阅下面的导入 import pyodbc, sys, smtplib, os from datetime import date from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText f

我创建了一个小应用程序,用于在服务器出现问题时发送电子邮件。使用py2exe创建exe文件。虽然它在Win7上运行非常好,但在WinSRV2003上运行它时遇到了问题。我不相信这与代码本身有关。 请参阅下面的导入

import pyodbc, sys, smtplib, os
from datetime import date
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
import email.iterators
import email.generator
setup.py文件:

from distutils.core import setup
import py2exe
import modulefinder

modulefinder.AddPackagePath("mail.mime", "base")
modulefinder.AddPackagePath("mail.mime", "multipart")
modulefinder.AddPackagePath("mail.mime", "nonmultipart")
modulefinder.AddPackagePath("mail.mime", "audio")
modulefinder.AddPackagePath("mail.mime", "image")
modulefinder.AddPackagePath("mail.mime", "message")
modulefinder.AddPackagePath("mail.mime", "application")

setup(console=['capfile_tester.py'],
    options = { "py2exe": { "includes": "decimal, datetime, email" } })
还有py2exe输出中的一行可能很有趣

似乎缺少以下模块 [“scproxy”]

尝试启动时出现错误消息:

由于应用程序配置不正确,此应用程序无法启动。重新安装应用程序可能会解决此问题


我想到的是,它是否会丢失一些注册表项以允许应用程序运行?

我认为这是缺少DLL的问题。您应该检查并查看DLL的应用程序包(或假定目标计算机上存在)。我认为您可以使用VisualStudio附带的
depends.exe
来实现这一点

编辑:我刚想起来。确保在安装了Python2.5的情况下运行py2exe。2.6有一些bug,这使得exe无法在多台机器上工作。

A似乎表明_scproxy是2.6中的一个新模块。也许是Python2.5参与了其中?py2exe应该是一个完全自包含的可执行文件,所以我不知道这怎么可能

另一种可能性是_scproxy依赖于Windows 2003中不可用的dll?您是否尝试过在Win2003上不使用py2exe运行程序?

谷歌搜索“此应用程序无法启动…”消息强烈表明这是一个DLL问题,可能是msvcp80.DLL和朋友的问题。考虑到MS如何不断更改MSVCC库等,这在最近的Windows/Python/py2exe中非常常见。不同的Python版本与不同的库相链接,如果它们没有预先安装在目标机器上,您可能会遇到类似的问题。有时从MS works安装适当的可再发行软件包


请注意,py2exe警告(在本例中是关于_scproxy的)几乎总是可以忽略的。这是非常常见的得到什么数额的虚假报告失踪的模块一样。95%的情况下,我们可以忽略它们,即使我们确实看到几十个模块“丢失”。

在涉及COM对象时,我也遇到了类似的问题。也许这里也是这样。这解决了我的问题。然后,我的软件将在不同的Windows版本上运行,而以前它不会。

很好的提示,我认为它可能与体系结构有关,但当我在虚拟xp 32位上创建exe时,它仍然无法在server 2003上运行。我仍然需要检查dll依赖项。我遇到了与您相同的问题。我写了一个使用PIL的脚本,但在几台机器上都不起作用。原来是因为DLL问题。另外,请确保使用Python2.5而不是Python2.6进行编译。这很重要!不幸的是,他们可能不允许我在服务器上安装python,但我会问的。谢谢.没有看到你的评论.我现在就试试。