Windows에서 Python 스크립트를 서비스로 어떻게 실행합니까?


260

데이터베이스에 저장된 다양한 관련 개체를 공유하는 일련의 프로그램에 대한 아키텍처를 스케치하고 있습니다. 프로그램 중 하나가 이러한 객체에 대한 작업을위한 더 높은 수준의 인터페이스를 제공하는 서비스로 작동하고 다른 프로그램이 해당 서비스를 통해 객체에 액세스하기를 원합니다.

현재 Python 및 Django 프레임 워크를 해당 서비스를 구현하는 기술로 목표로 삼고 있습니다. Linux에서 Python 프로그램을 데몬 화하는 방법을 확실히 알고 있습니다. 그러나 시스템이 Windows를 지원해야하는 것은 선택 사양입니다. Windows 프로그래밍 경험이 거의없고 Windows 서비스 경험이 전혀 없습니다.

Python 프로그램을 Windows 서비스로 실행할 수 있습니까 (예 : 사용자 로그인없이 자동으로 실행)? 필자는이 부분을 반드시 구현할 필요는 없지만 이러한 선을 따라 디자인할지 여부를 결정하려면 어떻게해야하는지 대략적인 아이디어가 필요합니다.

편집 : 지금까지 모든 답변에 감사드립니다. 한 가지 더 알고 싶습니다. Windows는 내 서비스를 어떻게 인식합니까? 기본 Windows 유틸리티로 관리 할 수 ​​있습니까? /etc/init.d에 시작 / 중지 스크립트를 넣는 것과 동등한 것은 무엇입니까?


2
win32service API를 사용하는 이 Windows 서비스 템플리트를 확인하십시오 .
CMS

답변:


254

그래 넌 할수있어. ActivePython에 포함되어 있거나 pywin32 (Python for Windows 확장명) 와 함께 설치할 수있는 pythoncom 라이브러리를 사용하여 수행합니다 .

간단한 서비스를위한 기본 구조입니다.

import win32serviceutil
import win32service
import win32event
import servicemanager
import socket


class AppServerSvc (win32serviceutil.ServiceFramework):
    _svc_name_ = "TestService"
    _svc_display_name_ = "Test Service"

    def __init__(self,args):
        win32serviceutil.ServiceFramework.__init__(self,args)
        self.hWaitStop = win32event.CreateEvent(None,0,0,None)
        socket.setdefaulttimeout(60)

    def SvcStop(self):
        self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
        win32event.SetEvent(self.hWaitStop)

    def SvcDoRun(self):
        servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE,
                              servicemanager.PYS_SERVICE_STARTED,
                              (self._svc_name_,''))
        self.main()

    def main(self):
        pass

if __name__ == '__main__':
    win32serviceutil.HandleCommandLine(AppServerSvc)

코드는 main()메소드에 들어갑니다. 일반적으로 SvcStop메소드 에서 설정 한 플래그를 확인하면 중단 될 수있는 무한 루프가 있습니다.


21
이것을 코딩 한 후 Windows가 이것을 서비스로 실행하도록하려면 어떻게해야합니까?
키트

33
@Kit : 매개 변수 "install"을 사용하여 명령 행에서 스크립트를 실행하십시오. 그러면 Windows 서비스 목록에서 응용 프로그램을 볼 수 있습니다. 여기서 시작, 중지 또는 자동 시작으로 설정할 수 있습니다.
Ricardo Reyes

16
pythoncom에 특별한 언급을하고 예제 코드로 가져옵니다. 문제는 실제로 예제 코드의 어느 곳에서나 pythoncom을 사용하지 않고 가져 오는 것입니다. 왜 특별한 언급을 한 다음 사용법을 나타내지 않습니까?
Buttons840

10
socket.setdefaulttimeout(60)인가? 서비스가 필요합니까, 아니면 기존 서비스에서 우연히 복사 한 것입니까? :)
Timur

7
chrisumbel.com/article/windows_services_in_python 이 예는 비슷하지만 더 완벽합니다
csprabala

41

몇 주 전에 선택한 답변을 찬성했지만 그 동안 나는이 주제로 더 많은 어려움을 겪었습니다. 특별한 Python 설치가 있고 서비스로 스크립트를 실행하기 위해 특수 모듈을 사용하는 것은 단순히 잘못된 방법입니다. 휴대 성과 관련하여 어떻습니까?

나는 훌륭한 비 흡입 서비스 관리자를 우연히 발견했습니다. 하여 Windows 서비스를 다루는 것이 정말 간단하고 깔끔했습니다. 옵션을 설치된 서비스에 전달할 수 있기 때문에 파이썬 실행 파일을 선택하고 스크립트를 옵션으로 전달할 수 있다고 생각했습니다.

아직이 솔루션을 시도하지 않았지만 지금 시도하고 프로세스에 따라이 게시물을 업데이트 할 것입니다. 또한 Windows에서 virtualenvs를 사용하는 데 관심이 있으므로 조만간 자습서를 제공하여 여기에 연결할 수 있습니다.


운? 클라이언트를위한 매우 간단한 사이트를 구축 중이며 전체 Apache 스택을 사용할 필요가 없습니다. 또한 다른 의견을 읽었을 때 혼자서 서비스를 구축하는 것도 문제에 대한 초대처럼 들렸습니다.
Jaran

예, 이것은 효과가 있으며 매우 쉽습니다. 스크립트의 경로와 인수 만 제공하면됩니다. 누군가가 어떻게 든 콘솔 창으로 끝나는 경우를 대비하여 콘솔을 사용하지 못했습니다.
kmcguire

이것은 분명히 효과가 있지만, 특히 "전체 아파치 스택을 사용할 필요가없는"경우에는 다른 어려움이 있습니다. 예를 들어, gunicorn은 Windows에서 아직 실행되지 않습니다.
mknaf

4
"\ TEMP \ myscript.py : \ python27 \ python.exe를 다 MyServiceName C 설치 nssm"와 같은 : 여기에 트릭은 서비스와 매개 변수로 파이썬 스크립트로 python.exe를 실행하는 것입니다
poleguy

잘 작동합니다! 여러 가상 환경이있는 시스템에서 경로는 원하는 가상 환경의 스크립트 디렉토리에서 Python 인터프리터 exe를 참조 할 수 있습니다. new-servicePowerShell 에서이 작업을 수행 할 수 있어야하는 것처럼 보이지만 서비스로 스크립트를 시작하고 모니터링하면 nssm이 매우 잘 처리하는 더 많은 세부 정보가 포함됩니다.
Fred Schleifer

26

가장 간단한 방법은 다음을 사용하는 것입니다. NSSM-Non-Sucking Service Manager :

1- https://nssm.cc/download에서 다운로드

2-파이썬 프로그램을 서비스로 설치하십시오 : 관리자로 Win 프롬프트

c :> nssm.exe 설치 WinService

3-NSSM 콘솔에서 :

경로 : C : \ Python27 \ Python27.exe

시작 디렉토리 : C : \ Python27

인수 : c : \ WinService.py

4-services.msc에서 작성된 서비스를 확인하십시오.


nssm.exe를 사용하여 Visual Studio C ++ .exe를 서비스로 설치했지만 이제는 Python .pyc에 nssm.exe를 서비스로 사용할 수 있습니다. 감사.
etoricky

참고 : * .py 스크립트가 공백이있는 폴더에있는 경우 (예 : C : \ Program Files \ myapp.py) 인수를 따옴표로 묶어야합니다. 인수 : "C : \ Program Files \ myapp.py"
Yury 코즐 로프

가상 환경을 제공하는 방법?
shaik moeed

24

이를 달성하는 가장 간단한 방법은 기본 명령 sc.exe를 사용하는 것입니다.

sc create PythonApp binPath= "C:\Python34\Python.exe --C:\tmp\pythonscript.py"

참고 문헌 :

  1. https://technet.microsoft.com/en-us/library/cc990289(v=ws.11).aspx
  2. sc.exe로 서비스를 만들 때 컨텍스트 매개 변수를 전달하는 방법은 무엇입니까?

나는 당신의 명령이나 응용 프로그램 자체에 문제가 있다고 생각합니다. 어쨌든,이 support.microsoft.com/en-us/help/886695/…를
pyOwner

내 앱은 서비스 외부에서 잘 작동하며 위의 동일한 코드를 결과없이 사용했습니다.
nimeresam

가상 환경을 제공하는 방법?
shaik moeed

virtualenv를 사용해 보셨습니까?
pyOwner

1
작동하지 않습니다. Windows 서비스는 pywin32 패키지가 수행하는 특정 인터페이스를 노출해야합니다. 그러나 평범한 오래된 Python 스크립트로는 충분하지 않습니다.
Siddhartha Gandhi

23

거의 모든 Windows 실행 파일을 서비스로 설치하기위한 몇 가지 대안이 있습니다.

방법 1 : rktools.exe에서 instsrv 및 srvany 사용

Windows Home Server 또는 Windows Server 2003 (WinXP에서도 작동)의 경우 Windows Server 2003 Resource Kit Tools 에는이를 위해 instsrv.exesrvany.exe 라는 유틸리티가 함께 제공됩니다 . 이러한 유틸리티를 사용하는 방법에 대한 자세한 내용 은이 Microsoft KB 문서 KB137890 을 참조하십시오.

Windows Home Server의 경우 "유용한 모든 서비스 설치 프로그램 " 이라는 유틸리티를위한 사용자 친화적 인 래퍼가 있습니다.

방법 2 : Windows NT 용 ServiceInstaller 사용

python 명령 과 함께 Windows NT 용 ServiceInstaller ( 여기서 다운로드 가능 )를 사용하는 또 다른 대안이 있습니다 . 이름과 달리 Windows 2000 및 Windows XP에서도 작동합니다. 다음은 파이썬 스크립트를 서비스로 설치하는 방법에 대한 지침입니다.

파이썬 스크립트 설치

ServiceInstaller를 실행하여 새 서비스를 작성하십시오. (이 예제에서는 python이 c : \ python25에 설치되어 있다고 가정합니다)

Service Name  : PythonTest
Display Name : PythonTest 
Startup : Manual (or whatever you like)
Dependencies : (Leave blank or fill to fit your needs)
Executable : c:\python25\python.exe
Arguments : c:\path_to_your_python_script\test.py
Working Directory : c:\path_to_your_python_script

설치 후 제어판의 서비스 애플릿을 열고 PythonTest 서비스를 선택하여 시작하십시오.

초기 답변 후, SO에 이미 게시 된 Q & A와 밀접한 관련이있는 것으로 나타났습니다. 또한보십시오:

Python 스크립트를 서비스로 실행할 수 있습니까 (Windows)? 어떻게?

Python으로 작성한 서비스를 Windows에 알리려면 어떻게해야합니까?


: 난 그냥 다른 유사한 Q & A가 이미 거기에 눈치 stackoverflow.com/questions/32404/... stackoverflow.com/questions/34328/...
popcnt가

Service Installer는 64 비트 아키텍처에서 작동하지 않으므로 옵션 1이 이동 옵션이됩니다.
노아 캠벨

위의 ServiceInstaller 링크는 더 이상 작동하지 않습니다. 여기에서 찾았습니다 : sites.google.com/site/conort/…
LarsH

2
참고로, 나는 NT적어도 프로그래머-민족 연설에서가 아니라, 그 이름에 반드시 "반대" 한다고 생각하지는 않는다 . "NT 브랜드 "가 아닌 "NT 아키텍처 "를 나타냅니다 . 그러나 위키피디아에 관한 이야기에 따르면 이것은 "공식적인 마이크로 소프트 용어가 아니기 때문에"논쟁의 여지가 있지만 그럼에도 불구하고이 사고 방식에는 전통이있다.
n611x007

15

작동 방법에 대한 단계별 설명 :

1- 먼저 위에서 언급 한 기본 골격에 따라 파이썬 파일을 만듭니다. 그리고 예를 들어 "c : \ PythonFiles \ AppServerSvc.py"경로에 저장하십시오.

import win32serviceutil
import win32service
import win32event
import servicemanager
import socket


class AppServerSvc (win32serviceutil.ServiceFramework):
    _svc_name_ = "TestService"
    _svc_display_name_ = "Test Service"


    def __init__(self,args):
        win32serviceutil.ServiceFramework.__init__(self,args)
        self.hWaitStop = win32event.CreateEvent(None,0,0,None)
        socket.setdefaulttimeout(60)

    def SvcStop(self):
        self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
        win32event.SetEvent(self.hWaitStop)

    def SvcDoRun(self):
        servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE,
                          servicemanager.PYS_SERVICE_STARTED,
                          (self._svc_name_,''))
        self.main()

    def main(self):
        # Your business logic or call to any class should be here
        # this time it creates a text.txt and writes Test Service in a daily manner 
        f = open('C:\\test.txt', 'a')
        rc = None
        while rc != win32event.WAIT_OBJECT_0:
            f.write('Test Service  \n')
            f.flush()
            # block for 24*60*60 seconds and wait for a stop event
            # it is used for a one-day loop
            rc = win32event.WaitForSingleObject(self.hWaitStop, 24 * 60 * 60 * 1000)
        f.write('shut down \n')
        f.close()

if __name__ == '__main__':
    win32serviceutil.HandleCommandLine(AppServerSvc)

2-이 단계에서 서비스를 등록해야합니다.

관리자 권한으로 명령 프롬프트를 실행 하고 다음과 같이 입력하십시오.

sc create TestService binpath = "C : \ Python36 \ Python.exe c : \ PythonFiles \ AppServerSvc.py"DisplayName = "TestService"start = 자동

binpath 의 첫 번째 인수 는 python.exe경로입니다.

의 두 번째 인수 binpath는 것이다 파이썬 파일의 경로 우리가 이미 만든

" = "기호 마다 하나의 공백을 두어야합니다 .

그런 다음 모든 것이 정상이면

[SC] CreateService 성공

이제 파이썬 서비스가 Windows 서비스로 설치되었습니다. Service Manager 및 레지스트리에서 다음을 확인할 수 있습니다.

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ TestService

3- 지금 확인하세요. 서비스 관리자에서 서비스를 시작할 수 있습니다.

이 서비스 스켈레톤을 제공하는 모든 파이썬 파일을 실행할 수 있습니다.


거기에 사용하는 방법 중 나쁜 예는 많이있다 SetEvent(self.hWaitStop)WaitForSingleObject. 선택한 답변을 무심코 복사 한 결과 일 것입니다. 이것은 "디버그"와 "중지"인수 모두에 대해 깔끔하게 작동하는 좋은 방법입니다. (SC 사용에 대한 부분은 HandleCommandLine작업을 수행 할 때 중복되는 것으로 보이며 디버그를 실행할 수 있습니다.)
Alias_Knagg

3

pysc : Python의 서비스 제어 관리자

pythonhosted.org에서 가져온 서비스로 실행되는 스크립트 예 :

from xmlrpc.server import SimpleXMLRPCServer

from pysc import event_stop


class TestServer:

    def echo(self, msg):
        return msg


if __name__ == '__main__':
    server = SimpleXMLRPCServer(('127.0.0.1', 9001))

    @event_stop
    def stop():
        server.server_close()

    server.register_instance(TestServer())
    server.serve_forever()

서비스 생성 및 시작

import os
import sys
from xmlrpc.client import ServerProxy

import pysc


if __name__ == '__main__':
    service_name = 'test_xmlrpc_server'
    script_path = os.path.join(
        os.path.dirname(__file__), 'xmlrpc_server.py'
    )
    pysc.create(
        service_name=service_name,
        cmd=[sys.executable, script_path]
    )
    pysc.start(service_name)

    client = ServerProxy('http://127.0.0.1:9001')
    print(client.echo('test scm'))

서비스 중지 및 삭제

import pysc

service_name = 'test_xmlrpc_server'

pysc.stop(service_name)
pysc.delete(service_name)
pip install pysc

3
왜 이것이 공감대를 얻었는지 알고 있습니까? 좋은 해결책처럼 보입니다.
Jarrod Chesney

3

pywin32 서비스로 호스팅을 시작했습니다 .

모든 것이 잘되었지만 시스템 시작시 서비스가 30 초 (Windows의 기본 시간 초과) 이내에 시작할 수 없다는 문제를 만났습니다. 하나의 물리적 시스템에서 호스팅되는 여러 가상 시스템에서 Windows 시작이 동시에 이루어졌고 IO로드가 엄청 났기 때문에 나에게 중요했습니다. 오류 메시지는 다음과 같습니다.

Error 1053: The service did not respond to the start or control request in a timely fashion.

Error 7009: Timeout (30000 milliseconds) waiting for the <ServiceName> service to connect.

나는 pywin과 많이 싸웠지만 이 답변에서 제안 된대로 NSSM을 사용했습니다 . 마이그레이션하기가 매우 쉽습니다.


2

Python 3 이상에서 nssm

( pyinstaller 사용 하여 .py 파일을 .exe로 변환했습니다. )

nssm : 전에 말한대로

  • nssm install {ServiceName}을 실행하십시오.
  • NSSM 콘솔에서 :

    경로 : path \ to \ your \ program.exe

    시작 디렉토리 : path \ to \ your \ # 프로그램과 동일하지만 program.exe가없는 경로

    인수 : 비어 있음

프로젝트를 .exe로 변환하지 않으려는 경우

  • 다음을 사용하여 .bat 파일을 만듭니다. python {{your python.py file name}}
  • .bat 파일의 경로를 설정하십시오.

가상 환경을 제공하는 방법?
shaik moeed

1

루프 또는 서브 스레드를 사용하는 완전한 pywin32 예제

며칠 동안이 작업을 수행 한 후 여기에 pywin32를 사용하여 멋지고 독립적으로 유지하려는 답이 있습니다.

이것은 하나의 루프 기반 및 하나의 스레드 기반 솔루션에 대한 완전한 작업 코드입니다. 2.7 및 Win7의 최신 버전 만 테스트했지만 파이썬 2와 3 모두에서 작동 할 수 있습니다. 루프는 폴링 코드에 적합해야하며 트레드는 서버와 유사한 코드로 작동해야합니다. 정상적으로 종료하는 표준 방법이없는 웨이트리스 wsgi 서버 와 잘 작동하는 것 같습니다 .

또한 참고로 같은 존재에서 예제의 부하가 될 것 같다 것 같은 거의 유용하지만, 그들은 잘라 내기 및 붙여 넣기 맹목적으로 다른 예를 가지고 있기 때문에 현실에서 오해의 소지가있다. 내가 틀렸을 수도있다. 기다리지 않는다면 왜 이벤트를 만드나요?

그것은 여전히 ​​내가 스레드 버전에서 출구가 얼마나 깨끗한 지와 관련하여 여기에 다소 흔들리는 느낌이 들지만 적어도 여기 에는 오해의 소지 가 없다고 생각 합니다.

간단히 코드를 파일로 복사하고 지침을 따르십시오.

최신 정보:

스레드를 종료하려면 간단한 플래그를 사용하십시오. 중요한 것은 "스레드 완료"인쇄입니다.
비협조적인 서버 스레드에서 나가는 더 정교한 예제 는 웨이트리스 wsgi 서버에 대한게시물을 참조하십시오 .

# uncomment mainthread() or mainloop() call below
# run without parameters to see HandleCommandLine options
# install service with "install" and remove with "remove"
# run with "debug" to see print statements
# with "start" and "stop" watch for files to appear
# check Windows EventViever for log messages

import socket
import sys
import threading
import time
from random import randint
from os import path

import servicemanager
import win32event
import win32service
import win32serviceutil
# see http://timgolden.me.uk/pywin32-docs/contents.html for details


def dummytask_once(msg='once'):
    fn = path.join(path.dirname(__file__),
                '%s_%s.txt' % (msg, randint(1, 10000)))
    with open(fn, 'w') as fh:
        print(fn)
        fh.write('')


def dummytask_loop():
    global do_run
    while do_run:
        dummytask_once(msg='loop')
        time.sleep(3)


class MyThread(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)

    def run(self):
        global do_run
        do_run = True
        print('thread start\n')
        dummytask_loop()
        print('thread done\n')

    def exit(self):
        global do_run
        do_run = False


class SMWinservice(win32serviceutil.ServiceFramework):
    _svc_name_ = 'PyWinSvc'
    _svc_display_name_ = 'Python Windows Service'
    _svc_description_ = 'An example of a windows service in Python'

    @classmethod
    def parse_command_line(cls):
        win32serviceutil.HandleCommandLine(cls)

    def __init__(self, args):
        win32serviceutil.ServiceFramework.__init__(self, args)
        self.stopEvt = win32event.CreateEvent(None, 0, 0, None)  # create generic event
        socket.setdefaulttimeout(60)

    def SvcStop(self):
        servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE,
                            servicemanager.PYS_SERVICE_STOPPED,
                            (self._svc_name_, ''))
        self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
        win32event.SetEvent(self.stopEvt)  # raise event

    def SvcDoRun(self):
        servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE,
                            servicemanager.PYS_SERVICE_STARTED,
                            (self._svc_name_, ''))
        # UNCOMMENT ONE OF THESE
        # self.mainthread()
        # self.mainloop()

    # Wait for stopEvt indefinitely after starting thread.
    def mainthread(self):
        print('main start')
        self.server = MyThread()
        self.server.start()
        print('wait for win32event')
        win32event.WaitForSingleObject(self.stopEvt, win32event.INFINITE)
        self.server.exit()
        print('wait for thread')
        self.server.join()
        print('main done')

    # Wait for stopEvt event in loop.
    def mainloop(self):
        print('loop start')
        rc = None
        while rc != win32event.WAIT_OBJECT_0:
            dummytask_once()
            rc = win32event.WaitForSingleObject(self.stopEvt, 3000)
        print('loop done')


if __name__ == '__main__':
    SMWinservice.parse_command_line()

0

사용하는 대답 win32serviceutil은 작동하지만 복잡하고 디버깅 및 변경을 더 어렵게 만듭니다. NSSM ( Non- Sucking Service Manager) 을 사용하는 것이 훨씬 쉽습니다 . 일반적인 파이썬 프로그램을 작성하고 편안하게 디버깅하고 마지막으로 작동하면 NSSM을 사용하여 1 분 이내에 서비스로 설치합니다.

관리자 권한 명령 프롬프트 nssm.exe install NameOfYourService에서 다음 옵션 을 실행 하고 입력합니다.

  • 경로 : (python.exe 경로 C:\Python27\Python.exe)
  • 인수 : (예를 들어 파이썬 스크립트의 경로 c:\path\to\program.py)

그건 그렇고, 프로그램이 로그 파일에 보관하려는 유용한 메시지를 인쇄하면 NSSM 도이를 처리 할 수 ​​있습니다.


예, 이것은 Adriano의 답변과 중복됩니다. 나는 그 대답을 찬성하고 그것을 편집하려고 노력했지만 편집 후에 나는 새로운 대답을보고있었습니다.
ndemou

가상 환경을 제공하는 방법?
shaik moeed

0

VENV 또는 Pycharm에서 서비스를 만들고 싶은 사람이라면 누구나 !!!!!!!

모든 anwsers을 읽은 후 실행할 수있는 경우, 일부 스크립트를 작성 python service.py install하고 python service.py debug, 그러나 python service.py start아무런 응답이 없습니다.

Windows 서비스가 exec로 서비스를 시작하기 때문에 venv 문제로 인한 것일 수 PROJECT\venv\Lib\site-packages\win32\pythonservice.exe있습니다.

더 자세한 오류 정보를 찾기 위해 powershell또는 cmd서비스를 사용 하여 테스트 할 수 있습니다 .

PS C:\Users\oraant> E:

PS E:\> cd \Software\PythonService\venv\Lib\site-packages\win32

PS E:\Software\PythonService\venv\Lib\site-packages\win32> .\pythonservice.exe -debug ttttt
Debugging service ttttt - press Ctrl+C to stop.
Error 0xC0000004 - Python could not import the service's module

Traceback (most recent call last):
  File "E:\Software\PythonService\my_service.py", line 2, in <module>
    import win32serviceutil
ModuleNotFoundError: No module named 'win32serviceutil'

(null): (null)

나 같은 오류가 발생하면 다른 질문에서 내 답변을 확인할 수 있습니다 . 고침하고 코드를 여기에 게시 하십시오 .


-1

https://www.chrisumbel.com/article/windows_services_in_python

  1. PySvc.py를 따르십시오

  2. dll 폴더 변경

나는 이것이 오래되었다는 것을 알고 있지만 나는 이것에 영원히 붙어있었습니다. 나를 위해,이 특정 문제는이 파일을 복사하여 해결되었습니다-pywintypes36.dll

에서-> Python36 \ Lib \ site-packages \ pywin32_system32

받는 사람-> Python36 \ Lib \ site-packages \ win32

setx /M PATH "%PATH%;C:\Users\user\AppData\Local\Programs\Python\Python38-32;C:\Users\user\AppData\Local\Programs\Python\Python38-32\Scripts;C:\Users\user\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\pywin32_system32;C:\Users\user\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\win32
  1. python 폴더 경로 변경

cd C:\Users\user\AppData\Local\Programs\Python\Python38-32

  1. NET START PySvc
  2. NET STOP PySvc
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.