안녕하세요. 회계법인 다니는 회계사입니다.
윈도우 11에서 작업 스케줄러로 정해진 시간에 파이썬 스크립트를 돌리려고 하는데 잘 안 돼서 여쭤봅니다.
상황은 이렇습니다.
- 명령 프롬프트에서 python 스크립트.py 로 직접 실행하면 잘 됩니다.
- 작업 스케줄러에 같은 명령을 넣으면 "실행됨"으로는 뜨는데 아무 일도 안 일어납니다.
- 프로그램 경로를 확인해 보니 C:\Users\...\AppData\Local\Microsoft\WindowsApps\python.exe 로 잡혀 있었습니다.
회계사 일을 하다 보니 엑셀 정리 같은 반복 작업이 많아서 이것저것 자동으로 돌려 보는 중인데, 개발은 독학이라 이런 데서 자주 막히네요.
궁금한 점은
1. WindowsApps 안에 있는 python.exe를 작업 스케줄러에서 쓰면 안 되는 건가요?
2. 실제 설치 경로를 찾으려면 어떻게 해야 하나요?
3. 절전 모드일 때도 깨워서 실행하게 하려면 "작업을 실행하기 위해 컴퓨터 깨우기"만 체크하면 되는지요?
4. 로그인 안 한 상태에서도 돌게 하려면 따로 설정할 게 있나요?
고수분들 조언 부탁드립니다.
윈도우 11에서 작업 스케줄러로 정해진 시간에 파이썬 스크립트를 돌리려고 하는데 잘 안 돼서 여쭤봅니다.
상황은 이렇습니다.
- 명령 프롬프트에서 python 스크립트.py 로 직접 실행하면 잘 됩니다.
- 작업 스케줄러에 같은 명령을 넣으면 "실행됨"으로는 뜨는데 아무 일도 안 일어납니다.
- 프로그램 경로를 확인해 보니 C:\Users\...\AppData\Local\Microsoft\WindowsApps\python.exe 로 잡혀 있었습니다.
회계사 일을 하다 보니 엑셀 정리 같은 반복 작업이 많아서 이것저것 자동으로 돌려 보는 중인데, 개발은 독학이라 이런 데서 자주 막히네요.
궁금한 점은
1. WindowsApps 안에 있는 python.exe를 작업 스케줄러에서 쓰면 안 되는 건가요?
2. 실제 설치 경로를 찾으려면 어떻게 해야 하나요?
3. 절전 모드일 때도 깨워서 실행하게 하려면 "작업을 실행하기 위해 컴퓨터 깨우기"만 체크하면 되는지요?
4. 로그인 안 한 상태에서도 돌게 하려면 따로 설정할 게 있나요?
고수분들 조언 부탁드립니다.
총 1명이 반응했습니다
댓글을 작성하시려면 로그인이 필요합니다.
댓글 2개
작업 스케줄러에서는 실제 파이선 실행 파일의 절대 경로를 지정하는 것이 좋습니다.
명령 프롬프트에서 python -c "import sys; print(sys.executable)" 명령으로 실제 실행 경로를 확인할 수 있습니다.
작업 스케줄러에서는 프로그램/스크립트에 실행 파일 경로, 인수 추가에 실행할 스크립트 경로, 시작 위치에 스크립트가 있는 폴더 경로를 각각 지정하세요.
절전 모드에서 실행하려면 '작업을 실행하기 위해 컴퓨터 깨우기'를 체크하고,
윈도우 전원 설정에서 깨우기 타이머도 허용해야 합니다.
완전히 종료된 PC에서는 실행되지 않습니다.
로그인하지 않은 상태에서도 실행하려면 '사용자의 로그온 여부에 관계없이 실행'을 선택하고
실행 계정의 파일 접근 권한과 환경 설정을 확인하셔야 합니다.
특히 엑셀 자동화는 파일을 직접 처리하는 방식과 Excel COM을 사용하는 방식이 다릅니다.
COM 방식은 비로그인 환경에서 정상 작동하지 않을 수 있습니다.
꼭, 작업 스케줄러의 실행 기록과 오류 코드를 확인해 보세요.
0x0이 표시되더라도 실제 작업까지 성공했다는 의미는 아닙니다.
작업 스케줄러를 이용한 프로그램 자동 실행 구성 예시 하나 참고드립니다.
이 문서는 저의 최근 작업 관련이고 로그인 시 자동 실행을 기준으로 작성되었으며 실행 경로, 작업 등록, 로그 확인 등의 실제 구현 사례를 포함하고 있습니다.
안녕하세요. 순서대로 답변드립니다.
1. WindowsApps 안의 python.exe는 쓰지 않으시는 게 좋습니다.
그 파일은 진짜 파이썬이 아니라 '앱 실행 별칭'이라는 0바이트짜리 바로가기입니다. 로그인한 화면에서는 잘 되지만 작업 스케줄러처럼 화면 없이 도는 환경에서는 실패하는 경우가 많습니다.
그리고 "실행됨인데 아무 일도 없음"은 '시작 위치(옵션)' 칸을 비워 둔 것이 원인인 경우가 아주 많습니다. 이 칸이 비어 있으면 스크립트 안의 data.xlsx 같은 상대 경로가 C:\Windows\System32 기준으로 잡힙니다. 시작 위치에 스크립트가 있는 폴더를 꼭 적어 주세요.
2. 실제 경로 찾기
명령 프롬프트에서 아래 중 하나를 실행해 보세요.
- where python
- py -0p
- python -c "import sys; print(sys.executable)"
결과가 WindowsApps로만 나오면 마이크로소프트 스토어판 파이썬입니다. 이때는 python.org에서 정식 설치판을 받아 다시 설치하시는 게 가장 깔끔합니다. 보통 C:\Users\(이름)\AppData\Local\Programs\Python\Python3xx\python.exe 에 설치되니, 이 경로를 작업에 넣으시면 됩니다.
작업 설정 예시
- 프로그램/스크립트: C:\Users\...\Python312\python.exe
- 인수 추가: "C:\작업\스크립트.py"
- 시작 위치: C:\작업
3. 절전 모드에서 깨우기
"작업을 실행하기 위해 컴퓨터 깨우기"만으로는 부족할 수 있습니다.
- 제어판 > 전원 옵션 > 고급 전원 설정 > 절전 > '절전 모드 해제 타이머 허용'을 '사용'으로
- 노트북이면 조건 탭의 'AC 전원일 때만 작업 시작' 체크 해제
회사 PC는 보안 정책으로 깨우기가 막혀 있을 수 있고, 최대 절전 모드나 전원이 꺼진 상태에서는 깨울 수 없습니다.
4. 로그인 안 한 상태에서 실행
일반 탭에서 '사용자의 로그온 여부에 관계없이 실행'을 선택하고 윈도우 비밀번호를 입력하시면 됩니다. 다만 이때는 화면 없이 돌기 때문에 주의할 점이 있습니다.
- 네트워크 드라이브의 Z:\ 같은 문자는 인식되지 않습니다. \\서버이름\폴더 형태로 적어 주세요.
- 엑셀 프로그램을 직접 띄워 조작하는 방식(win32com, xlwings)은 실패하기 쉽습니다. openpyxl·pandas처럼 파일만 읽고 쓰는 방식이 안전합니다.
팁: 원인을 찾을 때는 스크립트 맨 앞에 로그 파일을 남기게 해 두시면 편합니다. 아예 로그가 안 생기면 파이썬 경로 문제이고, 중간에 끊기면 스크립트 안의 경로나 권한 문제입니다.
도움이 되셨으면 좋겠습니다.