我已经使用pywin32成功地创建了pythonwindows服务。在测试我的应用程序时,我试图让它打印出来(这并不像我预期的那样工作),我还让它写入一个文件。它能够写入一个文件,但文件最终位于python库site packages文件夹中。这似乎是工作目录所在的位置,但我不确定为什么?我想知道最好的方法来指定工作目录应该是什么。在
我可以用完整的路径名打开文件,或者我可以使用操作系统cwd?最佳实践是什么?在
这是组成我的Windows服务的两个文件。在
import os
import sys
import win32service
import win32serviceutil
from twisted.internet import reactor
import xpress
class XPressService(win32serviceutil.ServiceFramework):
_svc_name_ = 'XPress'
_svc_display_name_ = 'XPress Longer Name'
def SvcStop(self):
self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
reactor.callFromThread(reactor.stop)
def SvcDoRun(self):
xpress.main()
reactor.run(installSignalHandlers=False)
if __name__ == "__main__":
win32serviceutil.HandleCommandLine(XPressService)
下面是“xpress.py“由上面的脚本导入。在
^{pr2}$
它们都有用,这就是你的需要。由于各种原因,最好使用文件名的绝对路径,这样你就不必担心你的应用程序在哪里工作,你只需知道输出在哪里(这是最重要的)。在*nix中,当应用程序没有指定的工作目录时,它们通常在'/'中工作。如果您选择在另一个目录
os.chdir(newDir)
,请在调用win32serviceutil.HandleCommandLine
之前执行此操作我不知道windows的默认值,但你可能在站点包中用库的目录来确定它。在
相关问题 更多 >
编程相关推荐