使用Python和py2exe创建Windows服务
我需要一些帮助,把一个用py2exe做的Python Windows服务转换成可执行文件。
让我来解释一下问题。我有一个Python服务,运行得很好,没有任何问题。我用py2exe把它变成了一个可执行文件。我测试了一下,把这个可执行文件替换掉原来的Python服务,结果也没问题,能正常工作。
但是,当我把这个可执行文件移到另一台电脑上时,它虽然能在服务管理器里注册,但启动时却报错:“系统找不到指定的文件”。缺少的文件是我自己写的一个模块。
我在这方面尝试了一些操作,然后又回到我用py2exe的那台机器上,那里可执行文件运行得很好。我把所有和Python相关的东西都删掉了,除了“dist”文件夹,所有我能想到和Python服务有关的东西都删除了。结果可执行文件还是能正常工作(尽管我删除了那些在另一台机器上被认为缺失的文件)。
我尝试了很多不同的方法,但就是无法让可执行文件在新电脑上运行。如果你们有任何想法,我会非常感激。
附注:我在目标机器上确实安装了C++运行时。没有它是无法注册服务的,正如我所说,我可以注册它,只是它无法运行。
2 个回答
0
http://www.py2exe.org/index.cgi/py2exeAndWindowsServices
里面有一些关于模块和Windows系统的dll文件冲突的说明。有个人遇到问题,因为他有一个叫做version的模块,使用import version
时导致应用程序出错。
你可以尝试在你的服务中首先导入win32traceutil。这应该能让你运行win32traceutil控制台应用,显示服务的任何标准输出或错误输出。