개발

[개발] Windows10 배치파일 이용하여 Python 실행하기

성민석 2024. 3. 18. 16:12

 

배치파일은 윈도우 운영체제에서 사용되는 스크립트 파일 중 하나로, 사용자가 미리 정의한 일련의 명령어들을 한 번에 실행할 수 있게 해주는 강력한 도구입니다. 이러한 배치파일은 자동화 작업, 소프트웨어 배포, 시스템 관리 등 다양한 분야에서 활용될 수 있습니다. 이전 포스팅에서는 배치파일과 작업스케쥴러를 이용해서 자동화하는 포스팅을 썼었습니다. 오늘은 특히 Python 실행 환경을 구성하기 위한 배치파일 작성 방법에 대해 자세히 알아보겠습니다.

2021.10.13 - [개발] - [개발] Windows 10에서 작업 스케줄러 사용하여 배치파일 실행시키기

 

[개발] Windows 10에서 작업 스케줄러 사용하여 배치파일 실행시키기

안녕하세요 성민석입니다. 시스템 트레이딩은 정해진 규칙에 따라서 시스템이 매매를 하는데 있습니다. 근데 이러한 시스템을 키는데까지 정말 수고로운 과정이 필요하죠. 물론 Linux 계열에서

minsuk-sung.tistory.com

 

배치파일의 기본 구성

배치파일(.bat)은 단순 텍스트 파일로, CMD(명령 프롬프트)에서 실행될 수 있는 명령어들을 포함하고 있습니다. 기본적으로 배치파일은 명령어들을 위에서부터 순차적으로 실행하며, 주석은 REM 명령어나 ::을 사용하여 추가할 수 있습니다.

 

Python 실행을 위한 배치파일 작성

Python 개발 환경을 설정하는 데 배치파일을 사용하는 것은 매우 유용합니다. 특히나 다양한 Python 환경을 관리하기 위해 Anaconda 같은 가상 환경 관리자를 사용하는 경우, 배치파일을 통해 필요한 환경을 빠르게 설정하고 작업에 집중할 수 있습니다.

 

call 명령어는 윈도우 배치 파일 내에서 다른 배치 파일을 실행하거나, 명령 프롬프트에서 외부 프로그램을 호출할 때 사용됩니다. 이 명령어를 사용함으로써, 하나의 배치 파일 내에서 여러 개의 배치 파일이나 프로그램을 순차적으로 실행할 수 있게 되며, 이는 스크립트의 모듈성과 재사용성을 높여줍니다.

 

예를 들어, 아래와 같은 배치파일을 작성하여 Python 실행 환경을 설정할 수 있습니다:

 

@echo off
REM Anaconda 환경 설정
set root=C:\Users\minsuksung\Anaconda3
call %root%\Scripts\activate.bat %root%
call conda activate py37_32

REM 스크립트가 위치한 디렉토리로 이동
D:
cd %~dp0

REM Python 스크립트 실행
call python main.py

 

이 스크립트는 다음과 같은 과정을 통해 Python 환경을 설정하고 스크립트를 실행합니다:

1. @echo off를 통해 배치파일 실행 중 명령어 출력을 끕니다.
2. Anaconda 설치 경로를 root 변수에 설정합니다.
3. activate.bat 스크립트를 호출하여 기본 Anaconda 환경을 활성화합니다.
4. conda activate py37_32 명령어를 통해 특정 Python 가상환경(py37_32)을 활성화합니다.
5. 배치 파일이 위치한 드라이브와 디렉토리로 이동합니다.
6. 마지막으로, main.py Python 스크립트를 실행합니다.

 

저는 개인적으로 cd %dp0 명령어가 가장 도움이 됐던 것 같습니다. 이 명령어를 통해서 현재 디텍토리의 위치를 구체적으로 몰라도 바로 알 수 있었습니다. 마치 Ubuntu에서는 pwd 명령어나 Python에서는 os.getcwd() 함수와 같은 역할이라고 생각하시면 될 것 같습니다.

 

이렇게 배치파일을 사용함으로써, 복잡한 환경 설정 과정 없이도 몇 번의 클릭으로 필요한 Python 환경을 준비하고 코드를 실행할 수 있습니다. 이는 개발 효율성을 크게 향상시키는 방법 중 하나입니다.

배치파일을 통한 자동화는 윈도우 사용자들에게 있어 매우 유용한 기능이며, 복잡한 설정이나 반복적인 작업을 간단히 처리할 수 있게 해줍니다. 이 포스팅을 통해 여러분도 배치파일을 활용하여 개발 환경을 보다 효율적으로 관리해 보시길 바랍니다.

728x90
반응형