pythonwindows服务的工作目录是什么?

2024-05-16 02:56:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经使用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}$

Tags: 文件nameimportself目录maindefservice
1条回答
网友
1楼 · 发布于 2024-05-16 02:56:04

它们都有用,这就是你的需要。由于各种原因,最好使用文件名的绝对路径,这样你就不必担心你的应用程序在哪里工作,你只需知道输出在哪里(这是最重要的)。在*nix中,当应用程序没有指定的工作目录时,它们通常在'/'中工作。如果您选择在另一个目录os.chdir(newDir),请在调用win32serviceutil.HandleCommandLine之前执行此操作

我不知道windows的默认值,但你可能在站点包中用库的目录来确定它。在

相关问题 更多 >